fork download
  1. from itertools import product
  2.  
  3. # 定义目标数字(可根据需要修改)
  4. TARGET = 100000
  5.  
  6. def find_solutions():
  7. a_values = [38.5, 44, 61, 70.5, 75.5, 93]
  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.04s 9392KB
stdin
Standard input is empty
stdout
总计算次数: 360,000
共找到 26 组有效(a, b)组合,目标值为 100000

1. 组合 a=38.5, b=61: 5 个解
   1. x=1032, y=988  (差值: 44, a*x=39732.0, b*y=60268, a*x + b*y = 100000.0) [平衡解]
   2. x=910, y=1065  (差值: 155, a*x=35035.0, b*y=64965, a*x + b*y = 100000.0) [平衡解]
   3. x=56, y=1604  (差值: 1548, a*x=2156.0, b*y=97844, a*x + b*y = 100000.0) [原始解]
   4. x=178, y=1527  (差值: 1349, a*x=6853.0, b*y=93147, a*x + b*y = 100000.0) [原始解]
   5. x=300, y=1450  (差值: 1150, a*x=11550.0, b*y=88450, a*x + b*y = 100000.0) [原始解]

2. 组合 a=38.5, b=70.5: 5 个解
   1. x=964, y=892  (差值: 72, a*x=37114.0, b*y=62886.0, a*x + b*y = 100000.0) [平衡解]
   2. x=823, y=969  (差值: 146, a*x=31685.5, b*y=68314.5, a*x + b*y = 100000.0) [平衡解]
   3. x=118, y=1354  (差值: 1236, a*x=4543.0, b*y=95457.0, a*x + b*y = 100000.0) [原始解]
   4. x=259, y=1277  (差值: 1018, a*x=9971.5, b*y=90028.5, a*x + b*y = 100000.0) [原始解]
   5. x=400, y=1200  (差值: 800, a*x=15400.0, b*y=84600.0, a*x + b*y = 100000.0) [原始解]

3. 组合 a=38.5, b=75.5: 5 个解
   1. x=856, y=888  (差值: 32, a*x=32956.0, b*y=67044.0, a*x + b*y = 100000.0) [平衡解]
   2. x=1007, y=811  (差值: 196, a*x=38769.5, b*y=61230.5, a*x + b*y = 100000.0) [平衡解]
   3. x=101, y=1273  (差值: 1172, a*x=3888.5, b*y=96111.5, a*x + b*y = 100000.0) [原始解]
   4. x=252, y=1196  (差值: 944, a*x=9702.0, b*y=90298.0, a*x + b*y = 100000.0) [原始解]
   5. x=403, y=1119  (差值: 716, a*x=15515.5, b*y=84484.5, a*x + b*y = 100000.0) [原始解]

4. 组合 a=38.5, b=93: 5 个解
   1. x=706, y=783  (差值: 77, a*x=27181.0, b*y=72819, a*x + b*y = 100000.0) [平衡解]
   2. x=892, y=706  (差值: 186, a*x=34342.0, b*y=65658, a*x + b*y = 100000.0) [平衡解]
   3. x=148, y=1014  (差值: 866, a*x=5698.0, b*y=94302, a*x + b*y = 100000.0) [原始解]
   4. x=334, y=937  (差值: 603, a*x=12859.0, b*y=87141, a*x + b*y = 100000.0) [原始解]
   5. x=520, y=860  (差值: 340, a*x=20020.0, b*y=79980, a*x + b*y = 100000.0) [原始解]

5. 组合 a=44, b=61: 5 个解
   1. x=964, y=944  (差值: 20, a*x=42416, b*y=57584, a*x + b*y = 100000.0) [平衡解]
   2. x=903, y=988  (差值: 85, a*x=39732, b*y=60268, a*x + b*y = 100000.0) [平衡解]
   3. x=49, y=1604  (差值: 1555, a*x=2156, b*y=97844, a*x + b*y = 100000.0) [原始解]
   4. x=110, y=1560  (差值: 1450, a*x=4840, b*y=95160, a*x + b*y = 100000.0) [原始解]
   5. x=171, y=1516  (差值: 1345, a*x=7524, b*y=92476, a*x + b*y = 100000.0) [原始解]

6. 组合 a=44, b=70.5: 5 个解
   1. x=914, y=848  (差值: 66, a*x=40216, b*y=59784.0, a*x + b*y = 100000.0) [平衡解]
   2. x=773, y=936  (差值: 163, a*x=34012, b*y=65988.0, a*x + b*y = 100000.0) [平衡解]
   3. x=68, y=1376  (差值: 1308, a*x=2992, b*y=97008.0, a*x + b*y = 100000.0) [原始解]
   4. x=209, y=1288  (差值: 1079, a*x=9196, b*y=90804.0, a*x + b*y = 100000.0) [原始解]
   5. x=350, y=1200  (差值: 850, a*x=15400, b*y=84600.0, a*x + b*y = 100000.0) [原始解]

7. 组合 a=44, b=75.5: 5 个解
   1. x=900, y=800  (差值: 100, a*x=39600, b*y=60400.0, a*x + b*y = 100000.0) [平衡解]
   2. x=749, y=888  (差值: 139, a*x=32956, b*y=67044.0, a*x + b*y = 100000.0) [平衡解]
   3. x=145, y=1240  (差值: 1095, a*x=6380, b*y=93620.0, a*x + b*y = 100000.0) [原始解]
   4. x=296, y=1152  (差值: 856, a*x=13024, b*y=86976.0, a*x + b*y = 100000.0) [原始解]
   5. x=447, y=1064  (差值: 617, a*x=19668, b*y=80332.0, a*x + b*y = 100000.0) [原始解]

8. 组合 a=44, b=93: 5 个解
   1. x=734, y=728  (差值: 6, a*x=32296, b*y=67704, a*x + b*y = 100000.0) [平衡解]
   2. x=641, y=772  (差值: 131, a*x=28204, b*y=71796, a*x + b*y = 100000.0) [平衡解]
   3. x=83, y=1036  (差值: 953, a*x=3652, b*y=96348, a*x + b*y = 100000.0) [原始解]
   4. x=176, y=992  (差值: 816, a*x=7744, b*y=92256, a*x + b*y = 100000.0) [原始解]
   5. x=269, y=948  (差值: 679, a*x=11836, b*y=88164, a*x + b*y = 100000.0) [原始解]

9. 组合 a=61, b=38.5: 5 个解
   1. x=988, y=1032  (差值: 44, a*x=60268, b*y=39732.0, a*x + b*y = 100000.0) [平衡解]
   2. x=1065, y=910  (差值: 155, a*x=64965, b*y=35035.0, a*x + b*y = 100000.0) [平衡解]
   3. x=64, y=2496  (差值: 2432, a*x=3904, b*y=96096.0, a*x + b*y = 100000.0) [原始解]
   4. x=141, y=2374  (差值: 2233, a*x=8601, b*y=91399.0, a*x + b*y = 100000.0) [原始解]
   5. x=218, y=2252  (差值: 2034, a*x=13298, b*y=86702.0, a*x + b*y = 100000.0) [原始解]

10. 组合 a=61, b=44: 5 个解
   1. x=944, y=964  (差值: 20, a*x=57584, b*y=42416, a*x + b*y = 100000.0) [平衡解]
   2. x=988, y=903  (差值: 85, a*x=60268, b*y=39732, a*x + b*y = 100000.0) [平衡解]
   3. x=20, y=2245  (差值: 2225, a*x=1220, b*y=98780, a*x + b*y = 100000.0) [原始解]
   4. x=64, y=2184  (差值: 2120, a*x=3904, b*y=96096, a*x + b*y = 100000.0) [原始解]
   5. x=108, y=2123  (差值: 2015, a*x=6588, b*y=93412, a*x + b*y = 100000.0) [原始解]

11. 组合 a=61, b=70.5: 5 个解
   1. x=724, y=792  (差值: 68, a*x=44164, b*y=55836.0, a*x + b*y = 100000.0) [平衡解]
   2. x=865, y=670  (差值: 195, a*x=52765, b*y=47235.0, a*x + b*y = 100000.0) [平衡解]
   3. x=19, y=1402  (差值: 1383, a*x=1159, b*y=98841.0, a*x + b*y = 100000.0) [原始解]
   4. x=160, y=1280  (差值: 1120, a*x=9760, b*y=90240.0, a*x + b*y = 100000.0) [原始解]
   5. x=301, y=1158  (差值: 857, a*x=18361, b*y=81639.0, a*x + b*y = 100000.0) [原始解]

12. 组合 a=61, b=75.5: 5 个解
   1. x=768, y=704  (差值: 64, a*x=46848, b*y=53152.0, a*x + b*y = 100000.0) [平衡解]
   2. x=617, y=826  (差值: 209, a*x=37637, b*y=62363.0, a*x + b*y = 100000.0) [平衡解]
   3. x=13, y=1314  (差值: 1301, a*x=793, b*y=99207.0, a*x + b*y = 100000.0) [原始解]
   4. x=164, y=1192  (差值: 1028, a*x=10004, b*y=89996.0, a*x + b*y = 100000.0) [原始解]
   5. x=315, y=1070  (差值: 755, a*x=19215, b*y=80785.0, a*x + b*y = 100000.0) [原始解]

13. 组合 a=61, b=93: 5 个解
   1. x=688, y=624  (差值: 64, a*x=41968, b*y=58032, a*x + b*y = 100000.0) [平衡解]
   2. x=595, y=685  (差值: 90, a*x=36295, b*y=63705, a*x + b*y = 100000.0) [平衡解]
   3. x=37, y=1051  (差值: 1014, a*x=2257, b*y=97743, a*x + b*y = 100000.0) [原始解]
   4. x=130, y=990  (差值: 860, a*x=7930, b*y=92070, a*x + b*y = 100000.0) [原始解]
   5. x=223, y=929  (差值: 706, a*x=13603, b*y=86397, a*x + b*y = 100000.0) [原始解]

14. 组合 a=70.5, b=38.5: 5 个解
   1. x=892, y=964  (差值: 72, a*x=62886.0, b*y=37114.0, a*x + b*y = 100000.0) [平衡解]
   2. x=969, y=823  (差值: 146, a*x=68314.5, b*y=31685.5, a*x + b*y = 100000.0) [平衡解]
   3. x=45, y=2515  (差值: 2470, a*x=3172.5, b*y=96827.5, a*x + b*y = 100000.0) [原始解]
   4. x=122, y=2374  (差值: 2252, a*x=8601.0, b*y=91399.0, a*x + b*y = 100000.0) [原始解]
   5. x=199, y=2233  (差值: 2034, a*x=14029.5, b*y=85970.5, a*x + b*y = 100000.0) [原始解]

15. 组合 a=70.5, b=44: 5 个解
   1. x=848, y=914  (差值: 66, a*x=59784.0, b*y=40216, a*x + b*y = 100000.0) [平衡解]
   2. x=936, y=773  (差值: 163, a*x=65988.0, b*y=34012, a*x + b*y = 100000.0) [平衡解]
   3. x=56, y=2183  (差值: 2127, a*x=3948.0, b*y=96052, a*x + b*y = 100000.0) [原始解]
   4. x=144, y=2042  (差值: 1898, a*x=10152.0, b*y=89848, a*x + b*y = 100000.0) [原始解]
   5. x=232, y=1901  (差值: 1669, a*x=16356.0, b*y=83644, a*x + b*y = 100000.0) [原始解]

16. 组合 a=70.5, b=61: 5 个解
   1. x=792, y=724  (差值: 68, a*x=55836.0, b*y=44164, a*x + b*y = 100000.0) [平衡解]
   2. x=670, y=865  (差值: 195, a*x=47235.0, b*y=52765, a*x + b*y = 100000.0) [平衡解]
   3. x=60, y=1570  (差值: 1510, a*x=4230.0, b*y=95770, a*x + b*y = 100000.0) [原始解]
   4. x=182, y=1429  (差值: 1247, a*x=12831.0, b*y=87169, a*x + b*y = 100000.0) [原始解]
   5. x=304, y=1288  (差值: 984, a*x=21432.0, b*y=78568, a*x + b*y = 100000.0) [原始解]

17. 组合 a=70.5, b=75.5: 5 个解
   1. x=687, y=683  (差值: 4, a*x=48433.5, b*y=51566.5, a*x + b*y = 100000.0) [平衡解]
   2. x=536, y=824  (差值: 288, a*x=37788.0, b*y=62212.0, a*x + b*y = 100000.0) [平衡解]
   3. x=83, y=1247  (差值: 1164, a*x=5851.5, b*y=94148.5, a*x + b*y = 100000.0) [原始解]
   4. x=234, y=1106  (差值: 872, a*x=16497.0, b*y=83503.0, a*x + b*y = 100000.0) [原始解]
   5. x=385, y=965  (差值: 580, a*x=27142.5, b*y=72857.5, a*x + b*y = 100000.0) [原始解]

18. 组合 a=75.5, b=38.5: 5 个解
   1. x=888, y=856  (差值: 32, a*x=67044.0, b*y=32956.0, a*x + b*y = 100000.0) [平衡解]
   2. x=811, y=1007  (差值: 196, a*x=61230.5, b*y=38769.5, a*x + b*y = 100000.0) [平衡解]
   3. x=41, y=2517  (差值: 2476, a*x=3095.5, b*y=96904.5, a*x + b*y = 100000.0) [原始解]
   4. x=118, y=2366  (差值: 2248, a*x=8909.0, b*y=91091.0, a*x + b*y = 100000.0) [原始解]
   5. x=195, y=2215  (差值: 2020, a*x=14722.5, b*y=85277.5, a*x + b*y = 100000.0) [原始解]

19. 组合 a=75.5, b=44: 5 个解
   1. x=800, y=900  (差值: 100, a*x=60400.0, b*y=39600, a*x + b*y = 100000.0) [平衡解]
   2. x=888, y=749  (差值: 139, a*x=67044.0, b*y=32956, a*x + b*y = 100000.0) [平衡解]
   3. x=8, y=2259  (差值: 2251, a*x=604.0, b*y=99396, a*x + b*y = 100000.0) [原始解]
   4. x=96, y=2108  (差值: 2012, a*x=7248.0, b*y=92752, a*x + b*y = 100000.0) [原始解]
   5. x=184, y=1957  (差值: 1773, a*x=13892.0, b*y=86108, a*x + b*y = 100000.0) [原始解]

20. 组合 a=75.5, b=61: 5 个解
   1. x=704, y=768  (差值: 64, a*x=53152.0, b*y=46848, a*x + b*y = 100000.0) [平衡解]
   2. x=826, y=617  (差值: 209, a*x=62363.0, b*y=37637, a*x + b*y = 100000.0) [平衡解]
   3. x=94, y=1523  (差值: 1429, a*x=7097.0, b*y=92903, a*x + b*y = 100000.0) [原始解]
   4. x=216, y=1372  (差值: 1156, a*x=16308.0, b*y=83692, a*x + b*y = 100000.0) [原始解]
   5. x=338, y=1221  (差值: 883, a*x=25519.0, b*y=74481, a*x + b*y = 100000.0) [原始解]

21. 组合 a=75.5, b=70.5: 5 个解
   1. x=683, y=687  (差值: 4, a*x=51566.5, b*y=48433.5, a*x + b*y = 100000.0) [平衡解]
   2. x=824, y=536  (差值: 288, a*x=62212.0, b*y=37788.0, a*x + b*y = 100000.0) [平衡解]
   3. x=119, y=1291  (差值: 1172, a*x=8984.5, b*y=91015.5, a*x + b*y = 100000.0) [原始解]
   4. x=260, y=1140  (差值: 880, a*x=19630.0, b*y=80370.0, a*x + b*y = 100000.0) [原始解]
   5. x=401, y=989  (差值: 588, a*x=30275.5, b*y=69724.5, a*x + b*y = 100000.0) [原始解]

22. 组合 a=75.5, b=93: 5 个解
   1. x=530, y=645  (差值: 115, a*x=40015.0, b*y=59985, a*x + b*y = 100000.0) [平衡解]
   2. x=716, y=494  (差值: 222, a*x=54058.0, b*y=45942, a*x + b*y = 100000.0) [平衡解]
   3. x=158, y=947  (差值: 789, a*x=11929.0, b*y=88071, a*x + b*y = 100000.0) [原始解]
   4. x=344, y=796  (差值: 452, a*x=25972.0, b*y=74028, a*x + b*y = 100000.0) [原始解]
   5. x=902, y=343  (差值: 559, a*x=68101.0, b*y=31899, a*x + b*y = 100000.0) [原始解]

23. 组合 a=93, b=38.5: 5 个解
   1. x=783, y=706  (差值: 77, a*x=72819, b*y=27181.0, a*x + b*y = 100000.0) [平衡解]
   2. x=706, y=892  (差值: 186, a*x=65658, b*y=34342.0, a*x + b*y = 100000.0) [平衡解]
   3. x=13, y=2566  (差值: 2553, a*x=1209, b*y=98791.0, a*x + b*y = 100000.0) [原始解]
   4. x=90, y=2380  (差值: 2290, a*x=8370, b*y=91630.0, a*x + b*y = 100000.0) [原始解]
   5. x=167, y=2194  (差值: 2027, a*x=15531, b*y=84469.0, a*x + b*y = 100000.0) [原始解]

24. 组合 a=93, b=44: 5 个解
   1. x=728, y=734  (差值: 6, a*x=67704, b*y=32296, a*x + b*y = 100000.0) [平衡解]
   2. x=772, y=641  (差值: 131, a*x=71796, b*y=28204, a*x + b*y = 100000.0) [平衡解]
   3. x=24, y=2222  (差值: 2198, a*x=2232, b*y=97768, a*x + b*y = 100000.0) [原始解]
   4. x=68, y=2129  (差值: 2061, a*x=6324, b*y=93676, a*x + b*y = 100000.0) [原始解]
   5. x=112, y=2036  (差值: 1924, a*x=10416, b*y=89584, a*x + b*y = 100000.0) [原始解]

25. 组合 a=93, b=61: 5 个解
   1. x=624, y=688  (差值: 64, a*x=58032, b*y=41968, a*x + b*y = 100000.0) [平衡解]
   2. x=685, y=595  (差值: 90, a*x=63705, b*y=36295, a*x + b*y = 100000.0) [平衡解]
   3. x=14, y=1618  (差值: 1604, a*x=1302, b*y=98698, a*x + b*y = 100000.0) [原始解]
   4. x=75, y=1525  (差值: 1450, a*x=6975, b*y=93025, a*x + b*y = 100000.0) [原始解]
   5. x=136, y=1432  (差值: 1296, a*x=12648, b*y=87352, a*x + b*y = 100000.0) [原始解]

26. 组合 a=93, b=75.5: 5 个解
   1. x=645, y=530  (差值: 115, a*x=59985, b*y=40015.0, a*x + b*y = 100000.0) [平衡解]
   2. x=494, y=716  (差值: 222, a*x=45942, b*y=54058.0, a*x + b*y = 100000.0) [平衡解]
   3. x=41, y=1274  (差值: 1233, a*x=3813, b*y=96187.0, a*x + b*y = 100000.0) [原始解]
   4. x=192, y=1088  (差值: 896, a*x=17856, b*y=82144.0, a*x + b*y = 100000.0) [原始解]
   5. x=343, y=902  (差值: 559, a*x=31899, b*y=68101.0, a*x + b*y = 100000.0) [原始解]
计算耗时: 0.01秒