fork download
  1. from itertools import product, combinations_with_replacement
  2. import time
  3. import threading
  4. from collections import defaultdict
  5. import math
  6.  
  7. # 配置参数(可根据需要修改)
  8. TARGET = 250550 # 目标值
  9. BASE_VALUES = [35, 40.5, 58, 67, 73, 90.5] # 基础系数列表
  10. FLUCTUATION = 1.0 # 系数波动范围
  11. MAX_SOLUTIONS = 3 # 每个组合的最大解数量
  12. SOLVER_TIMEOUT = 180 # 求解超时时间(秒)
  13. THREE_VAR_THRESHOLD = 220000 # 使用三个变量的阈值
  14. PRODUCT_RANGE_THRESHOLD = 148000 # 乘积范围限制阈值
  15. SHOW_PROGRESS = True # 是否显示进度
  16.  
  17. def is_valid_product(p):
  18. """检查单个乘积是否在有效范围内"""
  19. if TARGET > PRODUCT_RANGE_THRESHOLD:
  20. return 74000 <= p <= 115000
  21. else:
  22. return True # 目标值较小时不限制乘积范围
  23.  
  24. def find_single_variable_solutions(values):
  25. """查找单个数的解(a*x = TARGET)"""
  26. solutions = []
  27. for a in values:
  28. x = TARGET / a
  29. if x.is_integer() and 1 <= x <= 10000 and is_valid_product(a * x):
  30. solutions.append((a, x))
  31. return solutions
  32.  
  33. def find_two_variable_solutions(values):
  34. """查找两个变量的解(a*x + b*y = TARGET)"""
  35. solutions = defaultdict(list)
  36.  
  37. # 生成所有可能的(a, b)组合
  38. for a in values:
  39. for b in values:
  40. if a == b: # 避免重复
  41. continue
  42.  
  43. # 计算x的有效范围
  44. min_x = max(1, math.ceil((TARGET - b * 10000) / a))
  45. max_x = min(math.floor((TARGET - 1) / a), 10000)
  46.  
  47. if max_x < min_x:
  48. continue
  49.  
  50. for x in range(min_x, max_x + 1):
  51. remainder = TARGET - a * x
  52.  
  53. # 检查remainder是否在可能的范围内
  54. if remainder < 1 or remainder > b * 10000:
  55. continue
  56.  
  57. # 检查remainder是否能被b整除
  58. if remainder % b == 0:
  59. y = remainder // b
  60. if 1 <= y <= 10000 and is_valid_product(b * y):
  61. solutions[(a, b)].append((a, x, b, y))
  62.  
  63. return solutions
  64.  
  65. def find_three_variable_solutions(values):
  66. """优化的三变量求解算法"""
  67. solutions = defaultdict(list)
  68.  
  69. # 对系数进行排序,便于剪枝
  70. sorted_values = sorted(values)
  71.  
  72. # 预计算每个系数的有效范围
  73. value_ranges = {}
  74. for a in sorted_values:
  75. if TARGET > PRODUCT_RANGE_THRESHOLD:
  76. min_x = max(1, math.ceil(74000 / a))
  77. max_x = min(10000, math.floor(115000 / a))
  78. else:
  79. min_x = 1
  80. max_x = 10000
  81. value_ranges[a] = (min_x, max_x)
  82.  
  83. total_combinations = len(sorted_values) * (len(sorted_values) - 1) * (len(sorted_values) - 2) // 6
  84. processed_combinations = 0
  85.  
  86. # 三重循环,但添加了更多剪枝条件
  87. for i, a in enumerate(sorted_values):
  88. min_x, max_x = value_ranges[a]
  89.  
  90. for x in range(min_x, max_x + 1):
  91. ax = a * x
  92. if not is_valid_product(ax):
  93. continue
  94.  
  95. remainder1 = TARGET - ax
  96. if TARGET > PRODUCT_RANGE_THRESHOLD and remainder1 < 2 * 74000:
  97. continue
  98.  
  99. # 限制b的选择范围,避免重复组合
  100. for j in range(i + 1, len(sorted_values)):
  101. b = sorted_values[j]
  102.  
  103. if TARGET > PRODUCT_RANGE_THRESHOLD:
  104. min_y = max(1, math.ceil(74000 / b))
  105. max_y = min(10000, math.floor((remainder1 - 74000) / b))
  106. else:
  107. min_y = 1
  108. max_y = math.floor(remainder1 / b)
  109.  
  110. if max_y < min_y:
  111. continue
  112.  
  113. for y in range(min_y, max_y + 1):
  114. by = b * y
  115. if not is_valid_product(by):
  116. continue
  117.  
  118. remainder2 = remainder1 - by
  119. if TARGET > PRODUCT_RANGE_THRESHOLD and (remainder2 < 74000 or remainder2 > 115000):
  120. continue
  121.  
  122. # 限制c的选择范围
  123. for k in range(j + 1, len(sorted_values)):
  124. c = sorted_values[k]
  125.  
  126. # 检查remainder2是否能被c整除
  127. if remainder2 % c != 0:
  128. continue
  129.  
  130. z = remainder2 // c
  131. if 1 <= z <= 10000 and is_valid_product(c * z):
  132. key = (a, b, c)
  133. solutions[key].append((a, x, b, y, c, z))
  134.  
  135. # 进度显示
  136. if SHOW_PROGRESS and j % 10 == 0:
  137. print(f"\r三变量组合进度: {processed_combinations}/{total_combinations} 组", end='')
  138. processed_combinations += 1
  139.  
  140. if SHOW_PROGRESS:
  141. print(f"\r三变量组合进度: {processed_combinations}/{total_combinations} 组 - 完成")
  142.  
  143. return solutions
  144.  
  145. def find_balanced_solutions(solutions, var_count, num=2):
  146. """从所有解中筛选出最平衡的解"""
  147. if var_count == 1 or not solutions:
  148. return solutions # 单变量或无解时直接返回
  149.  
  150. # 当目标值超过220000时,不计算平衡解
  151. if TARGET > THREE_VAR_THRESHOLD: # 修改为使用三变量阈值
  152. return []
  153.  
  154. # 计算解的平衡性(变量间差异最小)
  155. balanced = []
  156. for sol in solutions:
  157. vars = sol[1::2] # 提取x, y, z
  158. diff = max(vars) - min(vars)
  159. balanced.append((diff, sol))
  160.  
  161. # 按差异排序,取前num个
  162. return [s for _, s in sorted(balanced, key=lambda x: x[0])[:num]]
  163.  
  164. def find_original_solutions(solutions, balanced_solutions, num=3):
  165. """从剩余解中获取原始顺序的解"""
  166. if not solutions:
  167. return []
  168.  
  169. # 排除已在平衡解中的项
  170. remaining = [s for s in solutions if s not in balanced_solutions]
  171. return remaining[:num]
  172.  
  173. def display_solutions(solutions_dict, var_count):
  174. """优化的解显示函数"""
  175. if not solutions_dict:
  176. return
  177.  
  178. print(f"\n找到 {len(solutions_dict)} 组{var_count}变量解:")
  179.  
  180. for i, (coeffs, pair_solutions) in enumerate(sorted(solutions_dict.items()), 1):
  181. # 当目标值超过220000时,不显示平衡解
  182. if TARGET > THREE_VAR_THRESHOLD: # 修改为使用三变量阈值
  183. all_display = pair_solutions[:MAX_SOLUTIONS]
  184. print_tag = "[原始解]"
  185. else:
  186. # 计算平衡解和原始解
  187. balanced = find_balanced_solutions(pair_solutions, var_count)
  188. original = find_original_solutions(pair_solutions, balanced)
  189. all_display = balanced + original
  190.  
  191. if var_count == 1:
  192. a = coeffs
  193. print(f"\n{i}. 组合: a={a} ({len(pair_solutions)} 个有效解)")
  194. elif var_count == 2:
  195. a, b = coeffs
  196. print(f"\n{i}. 组合: a={a}, b={b} ({len(pair_solutions)} 个有效解)")
  197. else: # var_count == 3
  198. a, b, c = coeffs
  199. print(f"\n{i}. 组合: a={a}, b={b}, c={c} ({len(pair_solutions)} 个有效解)")
  200.  
  201. for j, sol in enumerate(all_display, 1):
  202. if TARGET > THREE_VAR_THRESHOLD: # 修改为使用三变量阈值
  203. tag = print_tag
  204. else:
  205. tag = "[平衡解]" if j <= len(balanced) else "[原始解]"
  206.  
  207. if var_count == 1:
  208. a, x = sol
  209. print(f" {j}. x={x}, a*x={a*x:.1f}, 总和={a*x:.1f} {tag}")
  210. elif var_count == 2:
  211. a, x, b, y = sol
  212. print(f" {j}. x={x}, y={y}, a*x={a*x:.1f}, b*y={b*y:.1f}, 总和={a*x + b*y:.1f} {tag}")
  213. else: # var_count == 3
  214. a, x, b, y, c, z = sol
  215. print(f" {j}. x={x}, y={y}, z={z}, "
  216. f"a*x={a*x:.1f}, b*y={b*y:.1f}, c*z={c*z:.1f}, "
  217. f"总和={a*x + b*y + c*z:.1f} {tag}")
  218.  
  219. def run_with_timeout(func, args=(), kwargs=None, timeout=SOLVER_TIMEOUT):
  220. """运行函数并设置超时限制"""
  221. if kwargs is None:
  222. kwargs = {}
  223.  
  224. result = []
  225. error = []
  226.  
  227. def wrapper():
  228. try:
  229. result.append(func(*args, **kwargs))
  230. except Exception as e:
  231. error.append(e)
  232.  
  233. thread = threading.Thread(target=wrapper)
  234. thread.daemon = True
  235. thread.start()
  236. thread.join(timeout)
  237.  
  238. if thread.is_alive():
  239. print(f"警告: {func.__name__} 超时({timeout}秒),跳过此方法")
  240. return None
  241.  
  242. if error:
  243. raise error[0]
  244.  
  245. return result[0]
  246.  
  247. def main():
  248. print(f"目标值: {TARGET}")
  249.  
  250. # 生成波动后的系数
  251. FLUCTUATED_VALUES = [round(v - FLUCTUATION, 1) for v in BASE_VALUES]
  252.  
  253. # 尝试基础系数
  254. print(f"\n==== 尝试基础系数 ====")
  255.  
  256. # 检查目标值是否超过阈值
  257. if TARGET > THREE_VAR_THRESHOLD:
  258. print(f"目标值 {TARGET} 超过阈值 {THREE_VAR_THRESHOLD},只尝试三变量解")
  259. base_solutions = {
  260. 'single': [],
  261. 'two': [],
  262. 'three': run_with_timeout(find_three_variable_solutions, args=(BASE_VALUES,))
  263. }
  264.  
  265. # 显示三变量解
  266. if base_solutions['three'] and len(base_solutions['three']) > 0:
  267. display_solutions(base_solutions['three'], 3)
  268. print(f"\n使用基础系数列表,共找到有效解")
  269. return
  270. else:
  271. print("\n基础系数三变量无解,尝试波动系数")
  272. else:
  273. # 目标值未超过阈值,按顺序尝试单、双、三变量解
  274. base_solutions = {
  275. 'single': run_with_timeout(find_single_variable_solutions, args=(BASE_VALUES,)),
  276. 'two': run_with_timeout(find_two_variable_solutions, args=(BASE_VALUES,)),
  277. 'three': []
  278. }
  279.  
  280. # 检查是否有解
  281. has_solution = False
  282.  
  283. # 显示单变量解
  284. if base_solutions['single']:
  285. has_solution = True
  286. display_solutions({a: [sol] for a, sol in zip(BASE_VALUES, base_solutions['single']) if sol}, 1)
  287.  
  288. # 显示双变量解
  289. if base_solutions['two'] and len(base_solutions['two']) > 0:
  290. has_solution = True
  291. display_solutions(base_solutions['two'], 2)
  292.  
  293. # 单变量和双变量都无解时,尝试三变量解
  294. if not has_solution:
  295. print(f"\n==== 单变量和双变量无解,尝试三变量解 ====")
  296. base_solutions['three'] = run_with_timeout(find_three_variable_solutions, args=(BASE_VALUES,))
  297.  
  298. if base_solutions['three'] and len(base_solutions['three']) > 0:
  299. has_solution = True
  300. display_solutions(base_solutions['three'], 3)
  301.  
  302. # 如果找到解,退出程序
  303. if has_solution:
  304. print(f"\n使用基础系数列表,共找到有效解")
  305. return
  306.  
  307. # 如果基础系数没有找到解,尝试波动系数
  308. print(f"\n==== 尝试波动系数 ====")
  309.  
  310. # 检查目标值是否超过阈值
  311. if TARGET > THREE_VAR_THRESHOLD:
  312. print(f"目标值 {TARGET} 超过阈值 {THREE_VAR_THRESHOLD},只尝试三变量解")
  313. fluctuated_solutions = {
  314. 'single': [],
  315. 'two': [],
  316. 'three': run_with_timeout(find_three_variable_solutions, args=(FLUCTUATED_VALUES,))
  317. }
  318.  
  319. # 显示三变量解
  320. if fluctuated_solutions['three'] and len(fluctuated_solutions['three']) > 0:
  321. display_solutions(fluctuated_solutions['three'], 3)
  322. print(f"\n使用波动系数列表,共找到有效解")
  323. return
  324. else:
  325. # 目标值未超过阈值,按顺序尝试单、双、三变量解
  326. fluctuated_solutions = {
  327. 'single': run_with_timeout(find_single_variable_solutions, args=(FLUCTUATED_VALUES,)),
  328. 'two': run_with_timeout(find_two_variable_solutions, args=(FLUCTUATED_VALUES,)),
  329. 'three': []
  330. }
  331.  
  332. # 重置标志
  333. has_solution = False
  334.  
  335. # 显示单变量解
  336. if fluctuated_solutions['single']:
  337. has_solution = True
  338. display_solutions({a: [sol] for a, sol in zip(FLUCTUATED_VALUES, fluctuated_solutions['single']) if sol}, 1)
  339.  
  340. # 显示双变量解
  341. if fluctuated_solutions['two'] and len(fluctuated_solutions['two']) > 0:
  342. has_solution = True
  343. display_solutions(fluctuated_solutions['two'], 2)
  344.  
  345. # 单变量和双变量都无解时,尝试三变量解
  346. if not has_solution:
  347. print(f"\n==== 单变量和双变量无解,尝试三变量解 ====")
  348. fluctuated_solutions['three'] = run_with_timeout(find_three_variable_solutions, args=(FLUCTUATED_VALUES,))
  349.  
  350. if fluctuated_solutions['three'] and len(fluctuated_solutions['three']) > 0:
  351. has_solution = True
  352. display_solutions(fluctuated_solutions['three'], 3)
  353.  
  354. # 如果找到解,退出程序
  355. if has_solution:
  356. print(f"\n使用波动系数列表,共找到有效解")
  357. return
  358.  
  359. # 如果所有系数集都没有找到解
  360. print("\n没有找到符合条件的解,即使使用波动后的系数列表。")
  361.  
  362. if __name__ == "__main__":
  363. start_time = time.time()
  364. main()
  365. print(f"\n总耗时: {time.time() - start_time:.2f}秒")
Success #stdin #stdout 3.3s 15272KB
stdin
Standard input is empty
stdout
目标值: 250550

==== 尝试基础系数 ====
目标值 250550 超过阈值 220000,只尝试三变量解

三变量组合进度: 9610/20 组 - 完成

找到 20 组3变量解:

1. 组合: a=35, b=40.5, c=58 (2482 个有效解)
  1. x=2115, y=1894, z=1721.0, a*x=74025.0, b*y=76707.0, c*z=99818.0, 总和=250550.0 [原始解]
  2. x=2115, y=2010, z=1640.0, a*x=74025.0, b*y=81405.0, c*z=95120.0, 总和=250550.0 [原始解]
  3. x=2115, y=2126, z=1559.0, a*x=74025.0, b*y=86103.0, c*z=90422.0, 总和=250550.0 [原始解]

2. 组合: a=35, b=40.5, c=67 (2146 个有效解)
  1. x=2115, y=1854, z=1514.0, a*x=74025.0, b*y=75087.0, c*z=101438.0, 总和=250550.0 [原始解]
  2. x=2115, y=1988, z=1433.0, a*x=74025.0, b*y=80514.0, c*z=96011.0, 总和=250550.0 [原始解]
  3. x=2115, y=2122, z=1352.0, a*x=74025.0, b*y=85941.0, c*z=90584.0, 总和=250550.0 [原始解]

3. 组合: a=35, b=40.5, c=73 (1972 个有效解)
  1. x=2115, y=1846, z=1394.0, a*x=74025.0, b*y=74763.0, c*z=101762.0, 总和=250550.0 [原始解]
  2. x=2115, y=1992, z=1313.0, a*x=74025.0, b*y=80676.0, c*z=95849.0, 总和=250550.0 [原始解]
  3. x=2115, y=2138, z=1232.0, a*x=74025.0, b*y=86589.0, c*z=89936.0, 总和=250550.0 [原始解]

4. 组合: a=35, b=40.5, c=90.5 (1588 个有效解)
  1. x=2115, y=1990, z=1060.0, a*x=74025.0, b*y=80595.0, c*z=95930.0, 总和=250550.0 [原始解]
  2. x=2115, y=2171, z=979.0, a*x=74025.0, b*y=87925.5, c*z=88599.5, 总和=250550.0 [原始解]
  3. x=2115, y=2352, z=898.0, a*x=74025.0, b*y=95256.0, c*z=81269.0, 总和=250550.0 [原始解]

5. 组合: a=35, b=58, c=67 (2999 个有效解)
  1. x=2115, y=1305, z=1505, a*x=74025.0, b*y=75690.0, c*z=100835.0, 总和=250550.0 [原始解]
  2. x=2115, y=1372, z=1447, a*x=74025.0, b*y=79576.0, c*z=96949.0, 总和=250550.0 [原始解]
  3. x=2115, y=1439, z=1389, a*x=74025.0, b*y=83462.0, c*z=93063.0, 总和=250550.0 [原始解]

6. 组合: a=35, b=58, c=73 (2756 个有效解)
  1. x=2115, y=1323, z=1367, a*x=74025.0, b*y=76734.0, c*z=99791.0, 总和=250550.0 [原始解]
  2. x=2115, y=1396, z=1309, a*x=74025.0, b*y=80968.0, c*z=95557.0, 总和=250550.0 [原始解]
  3. x=2115, y=1469, z=1251, a*x=74025.0, b*y=85202.0, c*z=91323.0, 总和=250550.0 [原始解]

7. 组合: a=35, b=58, c=90.5 (1114 个有效解)
  1. x=2115, y=1349, z=1086.0, a*x=74025.0, b*y=78242.0, c*z=98283.0, 总和=250550.0 [原始解]
  2. x=2115, y=1530, z=970.0, a*x=74025.0, b*y=88740.0, c*z=87785.0, 总和=250550.0 [原始解]
  3. x=2115, y=1711, z=854.0, a*x=74025.0, b*y=99238.0, c*z=77287.0, 总和=250550.0 [原始解]

8. 组合: a=35, b=67, c=73 (2381 个有效解)
  1. x=2115, y=1154, z=1359, a*x=74025.0, b*y=77318.0, c*z=99207.0, 总和=250550.0 [原始解]
  2. x=2115, y=1227, z=1292, a*x=74025.0, b*y=82209.0, c*z=94316.0, 总和=250550.0 [原始解]
  3. x=2115, y=1300, z=1225, a*x=74025.0, b*y=87100.0, c*z=89425.0, 总和=250550.0 [原始解]

9. 组合: a=35, b=67, c=90.5 (964 个有效解)
  1. x=2115, y=1184, z=1074.0, a*x=74025.0, b*y=79328.0, c*z=97197.0, 总和=250550.0 [原始解]
  2. x=2115, y=1365, z=940.0, a*x=74025.0, b*y=91455.0, c*z=85070.0, 总和=250550.0 [原始解]
  3. x=2116, y=1224, z=1044.0, a*x=74060.0, b*y=82008.0, c*z=94482.0, 总和=250550.0 [原始解]

10. 组合: a=35, b=73, c=90.5 (885 个有效解)
  1. x=2115, y=1109, z=1056.0, a*x=74025.0, b*y=80957.0, c*z=95568.0, 总和=250550.0 [原始解]
  2. x=2115, y=1290, z=910.0, a*x=74025.0, b*y=94170.0, c*z=82355.0, 总和=250550.0 [原始解]
  3. x=2116, y=1111, z=1054.0, a*x=74060.0, b*y=81103.0, c*z=95387.0, 总和=250550.0 [原始解]

11. 组合: a=40.5, b=58, c=67 (1296 个有效解)
  1. x=1828, y=1306, z=1504.0, a*x=74034.0, b*y=75748.0, c*z=100768.0, 总和=250550.0 [原始解]
  2. x=1828, y=1373, z=1446.0, a*x=74034.0, b*y=79634.0, c*z=96882.0, 总和=250550.0 [原始解]
  3. x=1828, y=1440, z=1388.0, a*x=74034.0, b*y=83520.0, c*z=92996.0, 总和=250550.0 [原始解]

12. 组合: a=40.5, b=58, c=73 (1192 个有效解)
  1. x=1828, y=1309, z=1378.0, a*x=74034.0, b*y=75922.0, c*z=100594.0, 总和=250550.0 [原始解]
  2. x=1828, y=1382, z=1320.0, a*x=74034.0, b*y=80156.0, c*z=96360.0, 总和=250550.0 [原始解]
  3. x=1828, y=1455, z=1262.0, a*x=74034.0, b*y=84390.0, c*z=92126.0, 总和=250550.0 [原始解]

13. 组合: a=40.5, b=58, c=90.5 (960 个有效解)
  1. x=1828, y=1327, z=1100.0, a*x=74034.0, b*y=76966.0, c*z=99550.0, 总和=250550.0 [原始解]
  2. x=1828, y=1508, z=984.0, a*x=74034.0, b*y=87464.0, c*z=89052.0, 总和=250550.0 [原始解]
  3. x=1828, y=1689, z=868.0, a*x=74034.0, b*y=97962.0, c*z=78554.0, 总和=250550.0 [原始解]

14. 组合: a=40.5, b=67, c=73 (1030 个有效解)
  1. x=1828, y=1119, z=1391.0, a*x=74034.0, b*y=74973.0, c*z=101543.0, 总和=250550.0 [原始解]
  2. x=1828, y=1192, z=1324.0, a*x=74034.0, b*y=79864.0, c*z=96652.0, 总和=250550.0 [原始解]
  3. x=1828, y=1265, z=1257.0, a*x=74034.0, b*y=84755.0, c*z=91761.0, 总和=250550.0 [原始解]

15. 组合: a=40.5, b=67, c=90.5 (830 个有效解)
  1. x=1828, y=1246, z=1028.0, a*x=74034.0, b*y=83482.0, c*z=93034.0, 总和=250550.0 [原始解]
  2. x=1828, y=1427, z=894.0, a*x=74034.0, b*y=95609.0, c*z=80907.0, 总和=250550.0 [原始解]
  3. x=1829, y=1163, z=1089.0, a*x=74074.5, b*y=77921.0, c*z=98554.5, 总和=250550.0 [原始解]

16. 组合: a=40.5, b=73, c=90.5 (762 个有效解)
  1. x=1828, y=1094, z=1068.0, a*x=74034.0, b*y=79862.0, c*z=96654.0, 总和=250550.0 [原始解]
  2. x=1828, y=1275, z=922.0, a*x=74034.0, b*y=93075.0, c*z=83441.0, 总和=250550.0 [原始解]
  3. x=1829, y=1117, z=1049.0, a*x=74074.5, b*y=81541.0, c*z=94934.5, 总和=250550.0 [原始解]

17. 组合: a=58, b=67, c=73 (1439 个有效解)
  1. x=1276, y=1139, z=1373, a*x=74008.0, b*y=76313.0, c*z=100229.0, 总和=250550.0 [原始解]
  2. x=1276, y=1212, z=1306, a*x=74008.0, b*y=81204.0, c*z=95338.0, 总和=250550.0 [原始解]
  3. x=1276, y=1285, z=1239, a*x=74008.0, b*y=86095.0, c*z=90447.0, 总和=250550.0 [原始解]

18. 组合: a=58, b=67, c=90.5 (583 个有效解)
  1. x=1276, y=1268, z=1012.0, a*x=74008.0, b*y=84956.0, c*z=91586.0, 总和=250550.0 [原始解]
  2. x=1276, y=1449, z=878.0, a*x=74008.0, b*y=97083.0, c*z=79459.0, 总和=250550.0 [原始解]
  3. x=1277, y=1205, z=1058.0, a*x=74066.0, b*y=80735.0, c*z=95749.0, 总和=250550.0 [原始解]

19. 组合: a=58, b=73, c=90.5 (535 个有效解)
  1. x=1276, y=1077, z=1082.0, a*x=74008.0, b*y=78621.0, c*z=97921.0, 总和=250550.0 [原始解]
  2. x=1276, y=1258, z=936.0, a*x=74008.0, b*y=91834.0, c*z=84708.0, 总和=250550.0 [原始解]
  3. x=1277, y=1101, z=1062.0, a*x=74066.0, b*y=80373.0, c*z=96111.0, 总和=250550.0 [原始解]

20. 组合: a=67, b=73, c=90.5 (462 个有效解)
  1. x=1105, y=1032, z=1118.0, a*x=74035.0, b*y=75336.0, c*z=101179.0, 总和=250550.0 [原始解]
  2. x=1105, y=1213, z=972.0, a*x=74035.0, b*y=88549.0, c*z=87966.0, 总和=250550.0 [原始解]
  3. x=1105, y=1394, z=826.0, a*x=74035.0, b*y=101762.0, c*z=74753.0, 总和=250550.0 [原始解]

使用基础系数列表,共找到有效解

总耗时: 3.28秒