fork(1) download
  1. from itertools import product
  2.  
  3. # 定义目标数字(可根据需要修改)
  4. TARGET = 100000
  5.  
  6. def find_solutions():
  7. a_values = [35, 40.5, 58, 67, 73, 90.5]
  8. solutions_by_pair = {}
  9.  
  10. total_iterations = len(a_values) ** 2 * 10000
  11. print(f"总计算次数: {total_iterations:,}")
  12.  
  13. count = 0
  14. for a, b in product(a_values, repeat=2):
  15. min_x = 1
  16. max_x = int((TARGET - 1) // a)
  17.  
  18. if max_x < min_x:
  19. continue
  20.  
  21. all_solutions = [] # 存储所有解
  22. for x in range(min_x, max_x + 1):
  23. numerator = TARGET - a * x
  24. if numerator <= 0:
  25. continue
  26.  
  27. y = numerator / b
  28. if y.is_integer() and 1 <= y <= 10000:
  29. all_solutions.append((x, int(y)))
  30.  
  31. count += 1
  32. if count % 1000000 == 0:
  33. progress = count / total_iterations * 100
  34. print(f"进度: {progress:.2f}%")
  35.  
  36. if all_solutions:
  37. # 按平衡度排序,取前2个平衡解
  38. balanced_solutions = sorted(all_solutions, key=lambda p: abs(p[0] - p[1]))[:2]
  39.  
  40. # 从原始解中排除已在平衡解中的项,取前3个
  41. remaining_solutions = [s for s in all_solutions if s not in balanced_solutions][:3]
  42.  
  43. # 合并:先2个平衡解,再3个原始解
  44. combined = balanced_solutions + remaining_solutions
  45.  
  46. solutions_by_pair[(a, b)] = combined
  47.  
  48. return solutions_by_pair
  49.  
  50. def display_solutions(solutions_by_pair):
  51. total_pairs = len(solutions_by_pair)
  52. print(f"共找到 {total_pairs} 组有效(a, b)组合,目标值为 {TARGET}")
  53.  
  54. if total_pairs == 0:
  55. return
  56.  
  57. sorted_pairs = sorted(solutions_by_pair.keys(), key=lambda x: (x[0], x[1]))
  58.  
  59. for i, (a, b) in enumerate(sorted_pairs, 1):
  60. solutions = solutions_by_pair[(a, b)]
  61. print(f"\n{i}. 组合 a={a}, b={b}: {len(solutions)} 个解")
  62.  
  63. for j, (x, y) in enumerate(solutions, 1):
  64. diff = abs(x - y)
  65. tag = "[平衡解]" if j <= 2 else "[原始解]" # 前2个是平衡解
  66. print(f" {j}. x={x}, y={y} (差值: {diff}, a*x + b*y = {a*x + b*y:.1f}) {tag}")
  67.  
  68. if __name__ == "__main__":
  69. import time
  70. start_time = time.time()
  71.  
  72. solutions_by_pair = find_solutions()
  73. display_solutions(solutions_by_pair)
  74.  
  75. print(f"计算耗时: {time.time() - start_time:.2f}秒")
Success #stdin #stdout 0.05s 9492KB
stdin
Standard input is empty
stdout
总计算次数: 360,000
共找到 30 组有效(a, b)组合,目标值为 100000

1. 组合 a=35, b=40.5: 5 个解
   1. x=1295, y=1350  (差值: 55, a*x + b*y = 100000.0) [平衡解]
   2. x=1376, y=1280  (差值: 96, a*x + b*y = 100000.0) [平衡解]
   3. x=80, y=2400  (差值: 2320, a*x + b*y = 100000.0) [原始解]
   4. x=161, y=2330  (差值: 2169, a*x + b*y = 100000.0) [原始解]
   5. x=242, y=2260  (差值: 2018, a*x + b*y = 100000.0) [原始解]

2. 组合 a=35, b=58: 5 个解
   1. x=1084, y=1070  (差值: 14, a*x + b*y = 100000.0) [平衡解]
   2. x=1026, y=1105  (差值: 79, a*x + b*y = 100000.0) [平衡解]
   3. x=40, y=1700  (差值: 1660, a*x + b*y = 100000.0) [原始解]
   4. x=98, y=1665  (差值: 1567, a*x + b*y = 100000.0) [原始解]
   5. x=156, y=1630  (差值: 1474, a*x + b*y = 100000.0) [原始解]

3. 组合 a=35, b=67: 5 个解
   1. x=962, y=990  (差值: 28, a*x + b*y = 100000.0) [平衡解]
   2. x=1029, y=955  (差值: 74, a*x + b*y = 100000.0) [平衡解]
   3. x=24, y=1480  (差值: 1456, a*x + b*y = 100000.0) [原始解]
   4. x=91, y=1445  (差值: 1354, a*x + b*y = 100000.0) [原始解]
   5. x=158, y=1410  (差值: 1252, a*x + b*y = 100000.0) [原始解]

4. 组合 a=35, b=73: 5 个解
   1. x=907, y=935  (差值: 28, a*x + b*y = 100000.0) [平衡解]
   2. x=980, y=900  (差值: 80, a*x + b*y = 100000.0) [平衡解]
   3. x=31, y=1355  (差值: 1324, a*x + b*y = 100000.0) [原始解]
   4. x=104, y=1320  (差值: 1216, a*x + b*y = 100000.0) [原始解]
   5. x=177, y=1285  (差值: 1108, a*x + b*y = 100000.0) [原始解]

5. 组合 a=35, b=90.5: 5 个解
   1. x=711, y=830  (差值: 119, a*x + b*y = 100000.0) [平衡解]
   2. x=892, y=760  (差值: 132, a*x + b*y = 100000.0) [平衡解]
   3. x=168, y=1040  (差值: 872, a*x + b*y = 100000.0) [原始解]
   4. x=349, y=970  (差值: 621, a*x + b*y = 100000.0) [原始解]
   5. x=530, y=900  (差值: 370, a*x + b*y = 100000.0) [原始解]

6. 组合 a=40.5, b=35: 5 个解
   1. x=1350, y=1295  (差值: 55, a*x + b*y = 100000.0) [平衡解]
   2. x=1280, y=1376  (差值: 96, a*x + b*y = 100000.0) [平衡解]
   3. x=20, y=2834  (差值: 2814, a*x + b*y = 100000.0) [原始解]
   4. x=90, y=2753  (差值: 2663, a*x + b*y = 100000.0) [原始解]
   5. x=160, y=2672  (差值: 2512, a*x + b*y = 100000.0) [原始解]

7. 组合 a=40.5, b=58: 5 个解
   1. x=964, y=1051  (差值: 87, a*x + b*y = 100000.0) [平衡解]
   2. x=1080, y=970  (差值: 110, a*x + b*y = 100000.0) [平衡解]
   3. x=36, y=1699  (差值: 1663, a*x + b*y = 100000.0) [原始解]
   4. x=152, y=1618  (差值: 1466, a*x + b*y = 100000.0) [原始解]
   5. x=268, y=1537  (差值: 1269, a*x + b*y = 100000.0) [原始解]

8. 组合 a=40.5, b=67: 5 个解
   1. x=924, y=934  (差值: 10, a*x + b*y = 100000.0) [平衡解]
   2. x=1058, y=853  (差值: 205, a*x + b*y = 100000.0) [平衡解]
   3. x=120, y=1420  (差值: 1300, a*x + b*y = 100000.0) [原始解]
   4. x=254, y=1339  (差值: 1085, a*x + b*y = 100000.0) [原始解]
   5. x=388, y=1258  (差值: 870, a*x + b*y = 100000.0) [原始解]

9. 组合 a=40.5, b=73: 5 个解
   1. x=910, y=865  (差值: 45, a*x + b*y = 100000.0) [平衡解]
   2. x=764, y=946  (差值: 182, a*x + b*y = 100000.0) [平衡解]
   3. x=34, y=1351  (差值: 1317, a*x + b*y = 100000.0) [原始解]
   4. x=180, y=1270  (差值: 1090, a*x + b*y = 100000.0) [原始解]
   5. x=326, y=1189  (差值: 863, a*x + b*y = 100000.0) [原始解]

10. 组合 a=40.5, b=90.5: 5 个解
   1. x=715, y=785  (差值: 70, a*x + b*y = 100000.0) [平衡解]
   2. x=896, y=704  (差值: 192, a*x + b*y = 100000.0) [平衡解]
   3. x=172, y=1028  (差值: 856, a*x + b*y = 100000.0) [原始解]
   4. x=353, y=947  (差值: 594, a*x + b*y = 100000.0) [原始解]
   5. x=534, y=866  (差值: 332, a*x + b*y = 100000.0) [原始解]

11. 组合 a=58, b=35: 5 个解
   1. x=1070, y=1084  (差值: 14, a*x + b*y = 100000.0) [平衡解]
   2. x=1105, y=1026  (差值: 79, a*x + b*y = 100000.0) [平衡解]
   3. x=20, y=2824  (差值: 2804, a*x + b*y = 100000.0) [原始解]
   4. x=55, y=2766  (差值: 2711, a*x + b*y = 100000.0) [原始解]
   5. x=90, y=2708  (差值: 2618, a*x + b*y = 100000.0) [原始解]

12. 组合 a=58, b=40.5: 5 个解
   1. x=1051, y=964  (差值: 87, a*x + b*y = 100000.0) [平衡解]
   2. x=970, y=1080  (差值: 110, a*x + b*y = 100000.0) [平衡解]
   3. x=79, y=2356  (差值: 2277, a*x + b*y = 100000.0) [原始解]
   4. x=160, y=2240  (差值: 2080, a*x + b*y = 100000.0) [原始解]
   5. x=241, y=2124  (差值: 1883, a*x + b*y = 100000.0) [原始解]

13. 组合 a=58, b=67: 5 个解
   1. x=800, y=800  (差值: 0, a*x + b*y = 100000.0) [平衡解]
   2. x=733, y=858  (差值: 125, a*x + b*y = 100000.0) [平衡解]
   3. x=63, y=1438  (差值: 1375, a*x + b*y = 100000.0) [原始解]
   4. x=130, y=1380  (差值: 1250, a*x + b*y = 100000.0) [原始解]
   5. x=197, y=1322  (差值: 1125, a*x + b*y = 100000.0) [原始解]

14. 组合 a=58, b=73: 5 个解
   1. x=755, y=770  (差值: 15, a*x + b*y = 100000.0) [平衡解]
   2. x=828, y=712  (差值: 116, a*x + b*y = 100000.0) [平衡解]
   3. x=25, y=1350  (差值: 1325, a*x + b*y = 100000.0) [原始解]
   4. x=98, y=1292  (差值: 1194, a*x + b*y = 100000.0) [原始解]
   5. x=171, y=1234  (差值: 1063, a*x + b*y = 100000.0) [原始解]

15. 组合 a=58, b=90.5: 5 个解
   1. x=738, y=632  (差值: 106, a*x + b*y = 100000.0) [平衡解]
   2. x=557, y=748  (差值: 191, a*x + b*y = 100000.0) [平衡解]
   3. x=14, y=1096  (差值: 1082, a*x + b*y = 100000.0) [原始解]
   4. x=195, y=980  (差值: 785, a*x + b*y = 100000.0) [原始解]
   5. x=376, y=864  (差值: 488, a*x + b*y = 100000.0) [原始解]

16. 组合 a=67, b=35: 5 个解
   1. x=990, y=962  (差值: 28, a*x + b*y = 100000.0) [平衡解]
   2. x=955, y=1029  (差值: 74, a*x + b*y = 100000.0) [平衡解]
   3. x=10, y=2838  (差值: 2828, a*x + b*y = 100000.0) [原始解]
   4. x=45, y=2771  (差值: 2726, a*x + b*y = 100000.0) [原始解]
   5. x=80, y=2704  (差值: 2624, a*x + b*y = 100000.0) [原始解]

17. 组合 a=67, b=40.5: 5 个解
   1. x=934, y=924  (差值: 10, a*x + b*y = 100000.0) [平衡解]
   2. x=853, y=1058  (差值: 205, a*x + b*y = 100000.0) [平衡解]
   3. x=43, y=2398  (差值: 2355, a*x + b*y = 100000.0) [原始解]
   4. x=124, y=2264  (差值: 2140, a*x + b*y = 100000.0) [原始解]
   5. x=205, y=2130  (差值: 1925, a*x + b*y = 100000.0) [原始解]

18. 组合 a=67, b=58: 5 个解
   1. x=800, y=800  (差值: 0, a*x + b*y = 100000.0) [平衡解]
   2. x=742, y=867  (差值: 125, a*x + b*y = 100000.0) [平衡解]
   3. x=46, y=1671  (差值: 1625, a*x + b*y = 100000.0) [原始解]
   4. x=104, y=1604  (差值: 1500, a*x + b*y = 100000.0) [原始解]
   5. x=162, y=1537  (差值: 1375, a*x + b*y = 100000.0) [原始解]

19. 组合 a=67, b=73: 5 个解
   1. x=683, y=743  (差值: 60, a*x + b*y = 100000.0) [平衡解]
   2. x=756, y=676  (差值: 80, a*x + b*y = 100000.0) [平衡解]
   3. x=26, y=1346  (差值: 1320, a*x + b*y = 100000.0) [原始解]
   4. x=99, y=1279  (差值: 1180, a*x + b*y = 100000.0) [原始解]
   5. x=172, y=1212  (差值: 1040, a*x + b*y = 100000.0) [原始解]

20. 组合 a=67, b=90.5: 5 个解
   1. x=701, y=586  (差值: 115, a*x + b*y = 100000.0) [平衡解]
   2. x=520, y=720  (差值: 200, a*x + b*y = 100000.0) [平衡解]
   3. x=158, y=988  (差值: 830, a*x + b*y = 100000.0) [原始解]
   4. x=339, y=854  (差值: 515, a*x + b*y = 100000.0) [原始解]
   5. x=882, y=452  (差值: 430, a*x + b*y = 100000.0) [原始解]

21. 组合 a=73, b=35: 5 个解
   1. x=935, y=907  (差值: 28, a*x + b*y = 100000.0) [平衡解]
   2. x=900, y=980  (差值: 80, a*x + b*y = 100000.0) [平衡解]
   3. x=25, y=2805  (差值: 2780, a*x + b*y = 100000.0) [原始解]
   4. x=60, y=2732  (差值: 2672, a*x + b*y = 100000.0) [原始解]
   5. x=95, y=2659  (差值: 2564, a*x + b*y = 100000.0) [原始解]

22. 组合 a=73, b=40.5: 5 个解
   1. x=865, y=910  (差值: 45, a*x + b*y = 100000.0) [平衡解]
   2. x=946, y=764  (差值: 182, a*x + b*y = 100000.0) [平衡解]
   3. x=55, y=2370  (差值: 2315, a*x + b*y = 100000.0) [原始解]
   4. x=136, y=2224  (差值: 2088, a*x + b*y = 100000.0) [原始解]
   5. x=217, y=2078  (差值: 1861, a*x + b*y = 100000.0) [原始解]

23. 组合 a=73, b=58: 5 个解
   1. x=770, y=755  (差值: 15, a*x + b*y = 100000.0) [平衡解]
   2. x=712, y=828  (差值: 116, a*x + b*y = 100000.0) [平衡解]
   3. x=16, y=1704  (差值: 1688, a*x + b*y = 100000.0) [原始解]
   4. x=74, y=1631  (差值: 1557, a*x + b*y = 100000.0) [原始解]
   5. x=132, y=1558  (差值: 1426, a*x + b*y = 100000.0) [原始解]

24. 组合 a=73, b=67: 5 个解
   1. x=743, y=683  (差值: 60, a*x + b*y = 100000.0) [平衡解]
   2. x=676, y=756  (差值: 80, a*x + b*y = 100000.0) [平衡解]
   3. x=6, y=1486  (差值: 1480, a*x + b*y = 100000.0) [原始解]
   4. x=73, y=1413  (差值: 1340, a*x + b*y = 100000.0) [原始解]
   5. x=140, y=1340  (差值: 1200, a*x + b*y = 100000.0) [原始解]

25. 组合 a=73, b=90.5: 5 个解
   1. x=569, y=646  (差值: 77, a*x + b*y = 100000.0) [平衡解]
   2. x=750, y=500  (差值: 250, a*x + b*y = 100000.0) [平衡解]
   3. x=26, y=1084  (差值: 1058, a*x + b*y = 100000.0) [原始解]
   4. x=207, y=938  (差值: 731, a*x + b*y = 100000.0) [原始解]
   5. x=388, y=792  (差值: 404, a*x + b*y = 100000.0) [原始解]

26. 组合 a=90.5, b=35: 5 个解
   1. x=830, y=711  (差值: 119, a*x + b*y = 100000.0) [平衡解]
   2. x=760, y=892  (差值: 132, a*x + b*y = 100000.0) [平衡解]
   3. x=60, y=2702  (差值: 2642, a*x + b*y = 100000.0) [原始解]
   4. x=130, y=2521  (差值: 2391, a*x + b*y = 100000.0) [原始解]
   5. x=200, y=2340  (差值: 2140, a*x + b*y = 100000.0) [原始解]

27. 组合 a=90.5, b=40.5: 5 个解
   1. x=785, y=715  (差值: 70, a*x + b*y = 100000.0) [平衡解]
   2. x=704, y=896  (差值: 192, a*x + b*y = 100000.0) [平衡解]
   3. x=56, y=2344  (差值: 2288, a*x + b*y = 100000.0) [原始解]
   4. x=137, y=2163  (差值: 2026, a*x + b*y = 100000.0) [原始解]
   5. x=218, y=1982  (差值: 1764, a*x + b*y = 100000.0) [原始解]

28. 组合 a=90.5, b=58: 5 个解
   1. x=632, y=738  (差值: 106, a*x + b*y = 100000.0) [平衡解]
   2. x=748, y=557  (差值: 191, a*x + b*y = 100000.0) [平衡解]
   3. x=52, y=1643  (差值: 1591, a*x + b*y = 100000.0) [原始解]
   4. x=168, y=1462  (差值: 1294, a*x + b*y = 100000.0) [原始解]
   5. x=284, y=1281  (差值: 997, a*x + b*y = 100000.0) [原始解]

29. 组合 a=90.5, b=67: 5 个解
   1. x=586, y=701  (差值: 115, a*x + b*y = 100000.0) [平衡解]
   2. x=720, y=520  (差值: 200, a*x + b*y = 100000.0) [平衡解]
   3. x=50, y=1425  (差值: 1375, a*x + b*y = 100000.0) [原始解]
   4. x=184, y=1244  (差值: 1060, a*x + b*y = 100000.0) [原始解]
   5. x=318, y=1063  (差值: 745, a*x + b*y = 100000.0) [原始解]

30. 组合 a=90.5, b=73: 5 个解
   1. x=646, y=569  (差值: 77, a*x + b*y = 100000.0) [平衡解]
   2. x=500, y=750  (差值: 250, a*x + b*y = 100000.0) [平衡解]
   3. x=62, y=1293  (差值: 1231, a*x + b*y = 100000.0) [原始解]
   4. x=208, y=1112  (差值: 904, a*x + b*y = 100000.0) [原始解]
   5. x=354, y=931  (差值: 577, a*x + b*y = 100000.0) [原始解]
计算耗时: 0.02秒