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

==== 尝试基础系数 ====

找到 30 组2变量解:

1. 组合: a=35, b=40.5 (26 个有效解)
  1. x=965, y=1020.0, a*x=33775.0, b*y=41310.0, 总和=75085.0 [平衡解]
  2. x=1046, y=950.0, a*x=36610.0, b*y=38475.0, 总和=75085.0 [平衡解]
  3. x=74, y=1790.0, a*x=2590.0, b*y=72495.0, 总和=75085.0 [原始解]
  4. x=155, y=1720.0, a*x=5425.0, b*y=69660.0, 总和=75085.0 [原始解]
  5. x=236, y=1650.0, a*x=8260.0, b*y=66825.0, 总和=75085.0 [原始解]

2. 组合: a=35, b=58 (37 个有效解)
  1. x=803, y=810, a*x=28105.0, b*y=46980.0, 总和=75085.0 [平衡解]
  2. x=861, y=775, a*x=30135.0, b*y=44950.0, 总和=75085.0 [平衡解]
  3. x=49, y=1265, a*x=1715.0, b*y=73370.0, 总和=75085.0 [原始解]
  4. x=107, y=1230, a*x=3745.0, b*y=71340.0, 总和=75085.0 [原始解]
  5. x=165, y=1195, a*x=5775.0, b*y=69310.0, 总和=75085.0 [原始解]

3. 组合: a=35, b=67 (32 个有效解)
  1. x=767, y=720, a*x=26845.0, b*y=48240.0, 总和=75085.0 [平衡解]
  2. x=700, y=755, a*x=24500.0, b*y=50585.0, 总和=75085.0 [平衡解]
  3. x=30, y=1105, a*x=1050.0, b*y=74035.0, 总和=75085.0 [原始解]
  4. x=97, y=1070, a*x=3395.0, b*y=71690.0, 总和=75085.0 [原始解]
  5. x=164, y=1035, a*x=5740.0, b*y=69345.0, 总和=75085.0 [原始解]

4. 组合: a=35, b=73 (29 个有效解)
  1. x=727, y=680, a*x=25445.0, b*y=49640.0, 总和=75085.0 [平衡解]
  2. x=654, y=715, a*x=22890.0, b*y=52195.0, 总和=75085.0 [平衡解]
  3. x=70, y=995, a*x=2450.0, b*y=72635.0, 总和=75085.0 [原始解]
  4. x=143, y=960, a*x=5005.0, b*y=70080.0, 总和=75085.0 [原始解]
  5. x=216, y=925, a*x=7560.0, b*y=67525.0, 总和=75085.0 [原始解]

5. 组合: a=35, b=90.5 (12 个有效解)
  1. x=568, y=610.0, a*x=19880.0, b*y=55205.0, 总和=75085.0 [平衡解]
  2. x=749, y=540.0, a*x=26215.0, b*y=48870.0, 总和=75085.0 [平衡解]
  3. x=25, y=820.0, a*x=875.0, b*y=74210.0, 总和=75085.0 [原始解]
  4. x=206, y=750.0, a*x=7210.0, b*y=67875.0, 总和=75085.0 [原始解]
  5. x=387, y=680.0, a*x=13545.0, b*y=61540.0, 总和=75085.0 [原始解]

6. 组合: a=40.5, b=35 (26 个有效解)
  1. x=1020, y=965.0, a*x=41310.0, b*y=33775.0, 总和=75085.0 [平衡解]
  2. x=950, y=1046.0, a*x=38475.0, b*y=36610.0, 总和=75085.0 [平衡解]
  3. x=40, y=2099.0, a*x=1620.0, b*y=73465.0, 总和=75085.0 [原始解]
  4. x=110, y=2018.0, a*x=4455.0, b*y=70630.0, 总和=75085.0 [原始解]
  5. x=180, y=1937.0, a*x=7290.0, b*y=67795.0, 总和=75085.0 [原始解]

7. 组合: a=40.5, b=58 (16 个有效解)
  1. x=714, y=796.0, a*x=28917.0, b*y=46168.0, 总和=75085.0 [平衡解]
  2. x=830, y=715.0, a*x=33615.0, b*y=41470.0, 总和=75085.0 [平衡解]
  3. x=18, y=1282.0, a*x=729.0, b*y=74356.0, 总和=75085.0 [原始解]
  4. x=134, y=1201.0, a*x=5427.0, b*y=69658.0, 总和=75085.0 [原始解]
  5. x=250, y=1120.0, a*x=10125.0, b*y=64960.0, 总和=75085.0 [原始解]

8. 组合: a=40.5, b=67 (14 个有效解)
  1. x=686, y=706.0, a*x=27783.0, b*y=47302.0, 总和=75085.0 [平衡解]
  2. x=820, y=625.0, a*x=33210.0, b*y=41875.0, 总和=75085.0 [平衡解]
  3. x=16, y=1111.0, a*x=648.0, b*y=74437.0, 总和=75085.0 [原始解]
  4. x=150, y=1030.0, a*x=6075.0, b*y=69010.0, 总和=75085.0 [原始解]
  5. x=284, y=949.0, a*x=11502.0, b*y=63583.0, 总和=75085.0 [原始解]

9. 组合: a=40.5, b=73 (12 个有效解)
  1. x=722, y=628.0, a*x=29241.0, b*y=45844.0, 总和=75085.0 [平衡解]
  2. x=576, y=709.0, a*x=23328.0, b*y=51757.0, 总和=75085.0 [平衡解]
  3. x=138, y=952.0, a*x=5589.0, b*y=69496.0, 总和=75085.0 [原始解]
  4. x=284, y=871.0, a*x=11502.0, b*y=63583.0, 总和=75085.0 [原始解]
  5. x=430, y=790.0, a*x=17415.0, b*y=57670.0, 总和=75085.0 [原始解]

10. 组合: a=40.5, b=90.5 (10 个有效解)
  1. x=616, y=554.0, a*x=24948.0, b*y=50137.0, 总和=75085.0 [平衡解]
  2. x=435, y=635.0, a*x=17617.5, b*y=57467.5, 总和=75085.0 [平衡解]
  3. x=73, y=797.0, a*x=2956.5, b*y=72128.5, 总和=75085.0 [原始解]
  4. x=254, y=716.0, a*x=10287.0, b*y=64798.0, 总和=75085.0 [原始解]
  5. x=797, y=473.0, a*x=32278.5, b*y=42806.5, 总和=75085.0 [原始解]

11. 组合: a=58, b=35 (37 个有效解)
  1. x=810, y=803, a*x=46980.0, b*y=28105.0, 总和=75085.0 [平衡解]
  2. x=775, y=861, a*x=44950.0, b*y=30135.0, 总和=75085.0 [平衡解]
  3. x=5, y=2137, a*x=290.0, b*y=74795.0, 总和=75085.0 [原始解]
  4. x=40, y=2079, a*x=2320.0, b*y=72765.0, 总和=75085.0 [原始解]
  5. x=75, y=2021, a*x=4350.0, b*y=70735.0, 总和=75085.0 [原始解]

12. 组合: a=58, b=40.5 (16 个有效解)
  1. x=796, y=714.0, a*x=46168.0, b*y=28917.0, 总和=75085.0 [平衡解]
  2. x=715, y=830.0, a*x=41470.0, b*y=33615.0, 总和=75085.0 [平衡解]
  3. x=67, y=1758.0, a*x=3886.0, b*y=71199.0, 总和=75085.0 [原始解]
  4. x=148, y=1642.0, a*x=8584.0, b*y=66501.0, 总和=75085.0 [原始解]
  5. x=229, y=1526.0, a*x=13282.0, b*y=61803.0, 总和=75085.0 [原始解]

13. 组合: a=58, b=67 (19 个有效解)
  1. x=598, y=603, a*x=34684.0, b*y=40401.0, 总和=75085.0 [平衡解]
  2. x=665, y=545, a*x=38570.0, b*y=36515.0, 总和=75085.0 [平衡解]
  3. x=62, y=1067, a*x=3596.0, b*y=71489.0, 总和=75085.0 [原始解]
  4. x=129, y=1009, a*x=7482.0, b*y=67603.0, 总和=75085.0 [原始解]
  5. x=196, y=951, a*x=11368.0, b*y=63717.0, 总和=75085.0 [原始解]

14. 组合: a=58, b=73 (18 个有效解)
  1. x=591, y=559, a*x=34278.0, b*y=40807.0, 总和=75085.0 [平衡解]
  2. x=518, y=617, a*x=30044.0, b*y=45041.0, 总和=75085.0 [平衡解]
  3. x=7, y=1023, a*x=406.0, b*y=74679.0, 总和=75085.0 [原始解]
  4. x=80, y=965, a*x=4640.0, b*y=70445.0, 总和=75085.0 [原始解]
  5. x=153, y=907, a*x=8874.0, b*y=66211.0, 总和=75085.0 [原始解]

15. 组合: a=58, b=90.5 (7 个有效解)
  1. x=530, y=490.0, a*x=30740.0, b*y=44345.0, 总和=75085.0 [平衡解]
  2. x=349, y=606.0, a*x=20242.0, b*y=54843.0, 总和=75085.0 [平衡解]
  3. x=168, y=722.0, a*x=9744.0, b*y=65341.0, 总和=75085.0 [原始解]
  4. x=711, y=374.0, a*x=41238.0, b*y=33847.0, 总和=75085.0 [原始解]
  5. x=892, y=258.0, a*x=51736.0, b*y=23349.0, 总和=75085.0 [原始解]

16. 组合: a=67, b=35 (32 个有效解)
  1. x=720, y=767, a*x=48240.0, b*y=26845.0, 总和=75085.0 [平衡解]
  2. x=755, y=700, a*x=50585.0, b*y=24500.0, 总和=75085.0 [平衡解]
  3. x=20, y=2107, a*x=1340.0, b*y=73745.0, 总和=75085.0 [原始解]
  4. x=55, y=2040, a*x=3685.0, b*y=71400.0, 总和=75085.0 [原始解]
  5. x=90, y=1973, a*x=6030.0, b*y=69055.0, 总和=75085.0 [原始解]

17. 组合: a=67, b=40.5 (14 个有效解)
  1. x=706, y=686.0, a*x=47302.0, b*y=27783.0, 总和=75085.0 [平衡解]
  2. x=625, y=820.0, a*x=41875.0, b*y=33210.0, 总和=75085.0 [平衡解]
  3. x=58, y=1758.0, a*x=3886.0, b*y=71199.0, 总和=75085.0 [原始解]
  4. x=139, y=1624.0, a*x=9313.0, b*y=65772.0, 总和=75085.0 [原始解]
  5. x=220, y=1490.0, a*x=14740.0, b*y=60345.0, 总和=75085.0 [原始解]

18. 组合: a=67, b=58 (19 个有效解)
  1. x=603, y=598, a*x=40401.0, b*y=34684.0, 总和=75085.0 [平衡解]
  2. x=545, y=665, a*x=36515.0, b*y=38570.0, 总和=75085.0 [平衡解]
  3. x=23, y=1268, a*x=1541.0, b*y=73544.0, 总和=75085.0 [原始解]
  4. x=81, y=1201, a*x=5427.0, b*y=69658.0, 总和=75085.0 [原始解]
  5. x=139, y=1134, a*x=9313.0, b*y=65772.0, 总和=75085.0 [原始解]

19. 组合: a=67, b=73 (15 个有效解)
  1. x=565, y=510, a*x=37855.0, b*y=37230.0, 总和=75085.0 [平衡解]
  2. x=492, y=577, a*x=32964.0, b*y=42121.0, 总和=75085.0 [平衡解]
  3. x=54, y=979, a*x=3618.0, b*y=71467.0, 总和=75085.0 [原始解]
  4. x=127, y=912, a*x=8509.0, b*y=66576.0, 总和=75085.0 [原始解]
  5. x=200, y=845, a*x=13400.0, b*y=61685.0, 总和=75085.0 [原始解]

20. 组合: a=67, b=90.5 (6 个有效解)
  1. x=448, y=498.0, a*x=30016.0, b*y=45069.0, 总和=75085.0 [平衡解]
  2. x=629, y=364.0, a*x=42143.0, b*y=32942.0, 总和=75085.0 [平衡解]
  3. x=86, y=766.0, a*x=5762.0, b*y=69323.0, 总和=75085.0 [原始解]
  4. x=267, y=632.0, a*x=17889.0, b*y=57196.0, 总和=75085.0 [原始解]
  5. x=810, y=230.0, a*x=54270.0, b*y=20815.0, 总和=75085.0 [原始解]

21. 组合: a=73, b=35 (29 个有效解)
  1. x=680, y=727, a*x=49640.0, b*y=25445.0, 总和=75085.0 [平衡解]
  2. x=715, y=654, a*x=52195.0, b*y=22890.0, 总和=75085.0 [平衡解]
  3. x=15, y=2114, a*x=1095.0, b*y=73990.0, 总和=75085.0 [原始解]
  4. x=50, y=2041, a*x=3650.0, b*y=71435.0, 总和=75085.0 [原始解]
  5. x=85, y=1968, a*x=6205.0, b*y=68880.0, 总和=75085.0 [原始解]

22. 组合: a=73, b=40.5 (12 个有效解)
  1. x=628, y=722.0, a*x=45844.0, b*y=29241.0, 总和=75085.0 [平衡解]
  2. x=709, y=576.0, a*x=51757.0, b*y=23328.0, 总和=75085.0 [平衡解]
  3. x=61, y=1744.0, a*x=4453.0, b*y=70632.0, 总和=75085.0 [原始解]
  4. x=142, y=1598.0, a*x=10366.0, b*y=64719.0, 总和=75085.0 [原始解]
  5. x=223, y=1452.0, a*x=16279.0, b*y=58806.0, 总和=75085.0 [原始解]

23. 组合: a=73, b=58 (18 个有效解)
  1. x=559, y=591, a*x=40807.0, b*y=34278.0, 总和=75085.0 [平衡解]
  2. x=617, y=518, a*x=45041.0, b*y=30044.0, 总和=75085.0 [平衡解]
  3. x=37, y=1248, a*x=2701.0, b*y=72384.0, 总和=75085.0 [原始解]
  4. x=95, y=1175, a*x=6935.0, b*y=68150.0, 总和=75085.0 [原始解]
  5. x=153, y=1102, a*x=11169.0, b*y=63916.0, 总和=75085.0 [原始解]

24. 组合: a=73, b=67 (15 个有效解)
  1. x=510, y=565, a*x=37230.0, b*y=37855.0, 总和=75085.0 [平衡解]
  2. x=577, y=492, a*x=42121.0, b*y=32964.0, 总和=75085.0 [平衡解]
  3. x=41, y=1076, a*x=2993.0, b*y=72092.0, 总和=75085.0 [原始解]
  4. x=108, y=1003, a*x=7884.0, b*y=67201.0, 总和=75085.0 [原始解]
  5. x=175, y=930, a*x=12775.0, b*y=62310.0, 总和=75085.0 [原始解]

25. 组合: a=73, b=90.5 (5 个有效解)
  1. x=493, y=432.0, a*x=35989.0, b*y=39096.0, 总和=75085.0 [平衡解]
  2. x=312, y=578.0, a*x=22776.0, b*y=52309.0, 总和=75085.0 [平衡解]
  3. x=131, y=724.0, a*x=9563.0, b*y=65522.0, 总和=75085.0 [原始解]
  4. x=674, y=286.0, a*x=49202.0, b*y=25883.0, 总和=75085.0 [原始解]
  5. x=855, y=140.0, a*x=62415.0, b*y=12670.0, 总和=75085.0 [原始解]

26. 组合: a=90.5, b=35 (12 个有效解)
  1. x=610, y=568.0, a*x=55205.0, b*y=19880.0, 总和=75085.0 [平衡解]
  2. x=540, y=749.0, a*x=48870.0, b*y=26215.0, 总和=75085.0 [平衡解]
  3. x=50, y=2016.0, a*x=4525.0, b*y=70560.0, 总和=75085.0 [原始解]
  4. x=120, y=1835.0, a*x=10860.0, b*y=64225.0, 总和=75085.0 [原始解]
  5. x=190, y=1654.0, a*x=17195.0, b*y=57890.0, 总和=75085.0 [原始解]

27. 组合: a=90.5, b=40.5 (10 个有效解)
  1. x=554, y=616.0, a*x=50137.0, b*y=24948.0, 总和=75085.0 [平衡解]
  2. x=635, y=435.0, a*x=57467.5, b*y=17617.5, 总和=75085.0 [平衡解]
  3. x=68, y=1702.0, a*x=6154.0, b*y=68931.0, 总和=75085.0 [原始解]
  4. x=149, y=1521.0, a*x=13484.5, b*y=61600.5, 总和=75085.0 [原始解]
  5. x=230, y=1340.0, a*x=20815.0, b*y=54270.0, 总和=75085.0 [原始解]

28. 组合: a=90.5, b=58 (7 个有效解)
  1. x=490, y=530.0, a*x=44345.0, b*y=30740.0, 总和=75085.0 [平衡解]
  2. x=606, y=349.0, a*x=54843.0, b*y=20242.0, 总和=75085.0 [平衡解]
  3. x=26, y=1254.0, a*x=2353.0, b*y=72732.0, 总和=75085.0 [原始解]
  4. x=142, y=1073.0, a*x=12851.0, b*y=62234.0, 总和=75085.0 [原始解]
  5. x=258, y=892.0, a*x=23349.0, b*y=51736.0, 总和=75085.0 [原始解]

29. 组合: a=90.5, b=67 (6 个有效解)
  1. x=498, y=448.0, a*x=45069.0, b*y=30016.0, 总和=75085.0 [平衡解]
  2. x=364, y=629.0, a*x=32942.0, b*y=42143.0, 总和=75085.0 [平衡解]
  3. x=96, y=991.0, a*x=8688.0, b*y=66397.0, 总和=75085.0 [原始解]
  4. x=230, y=810.0, a*x=20815.0, b*y=54270.0, 总和=75085.0 [原始解]
  5. x=632, y=267.0, a*x=57196.0, b*y=17889.0, 总和=75085.0 [原始解]

30. 组合: a=90.5, b=73 (5 个有效解)
  1. x=432, y=493.0, a*x=39096.0, b*y=35989.0, 总和=75085.0 [平衡解]
  2. x=578, y=312.0, a*x=52309.0, b*y=22776.0, 总和=75085.0 [平衡解]
  3. x=140, y=855.0, a*x=12670.0, b*y=62415.0, 总和=75085.0 [原始解]
  4. x=286, y=674.0, a*x=25883.0, b*y=49202.0, 总和=75085.0 [原始解]
  5. x=724, y=131.0, a*x=65522.0, b*y=9563.0, 总和=75085.0 [原始解]

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

总耗时: 0.01秒