fork(13) 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. ax = a * x
  66. by = b * y
  67. tag = "[平衡解]" if j <= 2 else "[原始解]"
  68. print(f" {j}. x={x}, y={y} (差值: {diff}, a*x={ax}, b*y={by}, a*x + b*y = {ax + by:.1f}) {tag}")
  69.  
  70. if __name__ == "__main__":
  71. import time
  72. start_time = time.time()
  73.  
  74. solutions_by_pair = find_solutions()
  75. display_solutions(solutions_by_pair)
  76.  
  77. print(f"计算耗时: {time.time() - start_time:.2f}秒")
Success #stdin #stdout 0.06s 9604KB
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=45325, b*y=54675.0, a*x + b*y = 100000.0) [平衡解]
   2. x=1376, y=1280  (差值: 96, a*x=48160, b*y=51840.0, a*x + b*y = 100000.0) [平衡解]
   3. x=80, y=2400  (差值: 2320, a*x=2800, b*y=97200.0, a*x + b*y = 100000.0) [原始解]
   4. x=161, y=2330  (差值: 2169, a*x=5635, b*y=94365.0, a*x + b*y = 100000.0) [原始解]
   5. x=242, y=2260  (差值: 2018, a*x=8470, b*y=91530.0, a*x + b*y = 100000.0) [原始解]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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