fork download
  1. from itertools import product
  2.  
  3. # 定义目标数字(可根据需要修改)
  4. TARGET = 268668
  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) # 使用 TARGET
  17.  
  18. if max_x < min_x:
  19. continue
  20.  
  21. solutions = []
  22. for x in range(min_x, max_x + 1):
  23. numerator = TARGET - a * x # 使用 TARGET
  24. if numerator <= 0:
  25. continue
  26.  
  27. y = numerator / b
  28. if y.is_integer() and 1 <= y <= 10000:
  29. 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 solutions:
  37. solutions_by_pair[(a, b)] = solutions[:5]
  38.  
  39. return solutions_by_pair
  40.  
  41. def display_solutions(solutions_by_pair, max_per_pair=5):
  42. total_pairs = len(solutions_by_pair)
  43. print(f"共找到 {total_pairs} 组有效(a, b)组合,目标值为 {TARGET}")
  44.  
  45. if total_pairs == 0:
  46. return
  47.  
  48. sorted_pairs = sorted(solutions_by_pair.keys(), key=lambda x: (x[0], x[1]))
  49.  
  50. for i, (a, b) in enumerate(sorted_pairs, 1):
  51. solutions = solutions_by_pair[(a, b)]
  52. print(f"\n{i}. 组合 a={a}, b={b}: {len(solutions)} 个有效解")
  53.  
  54. for j, (x, y) in enumerate(solutions, 1):
  55. print(f" {j}. x={x}, y={y} (a*x + b*y = {a*x + b*y:.1f})")
  56.  
  57. if __name__ == "__main__":
  58. import time
  59. start_time = time.time()
  60.  
  61. solutions_by_pair = find_solutions()
  62. display_solutions(solutions_by_pair)
  63.  
  64. print(f"计算耗时: {time.time() - start_time:.2f}秒")
Success #stdin #stdout 0.07s 9504KB
stdin
Standard input is empty
stdout
总计算次数: 360,000
共找到 28 组有效(a, b)组合,目标值为 268668

1. 组合 a=38.5, b=61: 5 个有效解
   1. x=64, y=4364  (a*x + b*y = 268668.0)
   2. x=186, y=4287  (a*x + b*y = 268668.0)
   3. x=308, y=4210  (a*x + b*y = 268668.0)
   4. x=430, y=4133  (a*x + b*y = 268668.0)
   5. x=552, y=4056  (a*x + b*y = 268668.0)

2. 组合 a=38.5, b=70.5: 5 个有效解
   1. x=117, y=3747  (a*x + b*y = 268668.0)
   2. x=258, y=3670  (a*x + b*y = 268668.0)
   3. x=399, y=3593  (a*x + b*y = 268668.0)
   4. x=540, y=3516  (a*x + b*y = 268668.0)
   5. x=681, y=3439  (a*x + b*y = 268668.0)

3. 组合 a=38.5, b=75.5: 5 个有效解
   1. x=52, y=3532  (a*x + b*y = 268668.0)
   2. x=203, y=3455  (a*x + b*y = 268668.0)
   3. x=354, y=3378  (a*x + b*y = 268668.0)
   4. x=505, y=3301  (a*x + b*y = 268668.0)
   5. x=656, y=3224  (a*x + b*y = 268668.0)

4. 组合 a=38.5, b=93: 5 个有效解
   1. x=36, y=2874  (a*x + b*y = 268668.0)
   2. x=222, y=2797  (a*x + b*y = 268668.0)
   3. x=408, y=2720  (a*x + b*y = 268668.0)
   4. x=594, y=2643  (a*x + b*y = 268668.0)
   5. x=780, y=2566  (a*x + b*y = 268668.0)

5. 组合 a=44, b=61: 5 个有效解
   1. x=56, y=4364  (a*x + b*y = 268668.0)
   2. x=117, y=4320  (a*x + b*y = 268668.0)
   3. x=178, y=4276  (a*x + b*y = 268668.0)
   4. x=239, y=4232  (a*x + b*y = 268668.0)
   5. x=300, y=4188  (a*x + b*y = 268668.0)

6. 组合 a=44, b=70.5: 5 个有效解
   1. x=120, y=3736  (a*x + b*y = 268668.0)
   2. x=261, y=3648  (a*x + b*y = 268668.0)
   3. x=402, y=3560  (a*x + b*y = 268668.0)
   4. x=543, y=3472  (a*x + b*y = 268668.0)
   5. x=684, y=3384  (a*x + b*y = 268668.0)

7. 组合 a=44, b=75.5: 5 个有效解
   1. x=121, y=3488  (a*x + b*y = 268668.0)
   2. x=272, y=3400  (a*x + b*y = 268668.0)
   3. x=423, y=3312  (a*x + b*y = 268668.0)
   4. x=574, y=3224  (a*x + b*y = 268668.0)
   5. x=725, y=3136  (a*x + b*y = 268668.0)

8. 组合 a=44, b=93: 5 个有效解
   1. x=78, y=2852  (a*x + b*y = 268668.0)
   2. x=171, y=2808  (a*x + b*y = 268668.0)
   3. x=264, y=2764  (a*x + b*y = 268668.0)
   4. x=357, y=2720  (a*x + b*y = 268668.0)
   5. x=450, y=2676  (a*x + b*y = 268668.0)

9. 组合 a=61, b=38.5: 5 个有效解
   1. x=52, y=6896  (a*x + b*y = 268668.0)
   2. x=129, y=6774  (a*x + b*y = 268668.0)
   3. x=206, y=6652  (a*x + b*y = 268668.0)
   4. x=283, y=6530  (a*x + b*y = 268668.0)
   5. x=360, y=6408  (a*x + b*y = 268668.0)

10. 组合 a=61, b=44: 5 个有效解
   1. x=8, y=6095  (a*x + b*y = 268668.0)
   2. x=52, y=6034  (a*x + b*y = 268668.0)
   3. x=96, y=5973  (a*x + b*y = 268668.0)
   4. x=140, y=5912  (a*x + b*y = 268668.0)
   5. x=184, y=5851  (a*x + b*y = 268668.0)

11. 组合 a=61, b=70.5: 5 个有效解
   1. x=75, y=3746  (a*x + b*y = 268668.0)
   2. x=216, y=3624  (a*x + b*y = 268668.0)
   3. x=357, y=3502  (a*x + b*y = 268668.0)
   4. x=498, y=3380  (a*x + b*y = 268668.0)
   5. x=639, y=3258  (a*x + b*y = 268668.0)

12. 组合 a=61, b=75.5: 5 个有效解
   1. x=65, y=3506  (a*x + b*y = 268668.0)
   2. x=216, y=3384  (a*x + b*y = 268668.0)
   3. x=367, y=3262  (a*x + b*y = 268668.0)
   4. x=518, y=3140  (a*x + b*y = 268668.0)
   5. x=669, y=3018  (a*x + b*y = 268668.0)

13. 组合 a=61, b=93: 5 个有效解
   1. x=9, y=2883  (a*x + b*y = 268668.0)
   2. x=102, y=2822  (a*x + b*y = 268668.0)
   3. x=195, y=2761  (a*x + b*y = 268668.0)
   4. x=288, y=2700  (a*x + b*y = 268668.0)
   5. x=381, y=2639  (a*x + b*y = 268668.0)

14. 组合 a=70.5, b=38.5: 5 个有效解
   1. x=51, y=6885  (a*x + b*y = 268668.0)
   2. x=128, y=6744  (a*x + b*y = 268668.0)
   3. x=205, y=6603  (a*x + b*y = 268668.0)
   4. x=282, y=6462  (a*x + b*y = 268668.0)
   5. x=359, y=6321  (a*x + b*y = 268668.0)

15. 组合 a=70.5, b=44: 5 个有效解
   1. x=40, y=6042  (a*x + b*y = 268668.0)
   2. x=128, y=5901  (a*x + b*y = 268668.0)
   3. x=216, y=5760  (a*x + b*y = 268668.0)
   4. x=304, y=5619  (a*x + b*y = 268668.0)
   5. x=392, y=5478  (a*x + b*y = 268668.0)

16. 组合 a=70.5, b=61: 5 个有效解
   1. x=86, y=4305  (a*x + b*y = 268668.0)
   2. x=208, y=4164  (a*x + b*y = 268668.0)
   3. x=330, y=4023  (a*x + b*y = 268668.0)
   4. x=452, y=3882  (a*x + b*y = 268668.0)
   5. x=574, y=3741  (a*x + b*y = 268668.0)

17. 组合 a=70.5, b=75.5: 5 个有效解
   1. x=113, y=3453  (a*x + b*y = 268668.0)
   2. x=264, y=3312  (a*x + b*y = 268668.0)
   3. x=415, y=3171  (a*x + b*y = 268668.0)
   4. x=566, y=3030  (a*x + b*y = 268668.0)
   5. x=717, y=2889  (a*x + b*y = 268668.0)

18. 组合 a=70.5, b=93: 5 个有效解
   1. x=50, y=2851  (a*x + b*y = 268668.0)
   2. x=112, y=2804  (a*x + b*y = 268668.0)
   3. x=174, y=2757  (a*x + b*y = 268668.0)
   4. x=236, y=2710  (a*x + b*y = 268668.0)
   5. x=298, y=2663  (a*x + b*y = 268668.0)

19. 组合 a=75.5, b=38.5: 5 个有效解
   1. x=67, y=6847  (a*x + b*y = 268668.0)
   2. x=144, y=6696  (a*x + b*y = 268668.0)
   3. x=221, y=6545  (a*x + b*y = 268668.0)
   4. x=298, y=6394  (a*x + b*y = 268668.0)
   5. x=375, y=6243  (a*x + b*y = 268668.0)

20. 组合 a=75.5, b=44: 5 个有效解
   1. x=56, y=6010  (a*x + b*y = 268668.0)
   2. x=144, y=5859  (a*x + b*y = 268668.0)
   3. x=232, y=5708  (a*x + b*y = 268668.0)
   4. x=320, y=5557  (a*x + b*y = 268668.0)
   5. x=408, y=5406  (a*x + b*y = 268668.0)

21. 组合 a=75.5, b=61: 5 个有效解
   1. x=90, y=4293  (a*x + b*y = 268668.0)
   2. x=212, y=4142  (a*x + b*y = 268668.0)
   3. x=334, y=3991  (a*x + b*y = 268668.0)
   4. x=456, y=3840  (a*x + b*y = 268668.0)
   5. x=578, y=3689  (a*x + b*y = 268668.0)

22. 组合 a=75.5, b=70.5: 5 个有效解
   1. x=69, y=3737  (a*x + b*y = 268668.0)
   2. x=210, y=3586  (a*x + b*y = 268668.0)
   3. x=351, y=3435  (a*x + b*y = 268668.0)
   4. x=492, y=3284  (a*x + b*y = 268668.0)
   5. x=633, y=3133  (a*x + b*y = 268668.0)

23. 组合 a=75.5, b=93: 5 个有效解
   1. x=144, y=2772  (a*x + b*y = 268668.0)
   2. x=330, y=2621  (a*x + b*y = 268668.0)
   3. x=516, y=2470  (a*x + b*y = 268668.0)
   4. x=702, y=2319  (a*x + b*y = 268668.0)
   5. x=888, y=2168  (a*x + b*y = 268668.0)

24. 组合 a=93, b=38.5: 5 个有效解
   1. x=25, y=6918  (a*x + b*y = 268668.0)
   2. x=102, y=6732  (a*x + b*y = 268668.0)
   3. x=179, y=6546  (a*x + b*y = 268668.0)
   4. x=256, y=6360  (a*x + b*y = 268668.0)
   5. x=333, y=6174  (a*x + b*y = 268668.0)

25. 组合 a=93, b=44: 5 个有效解
   1. x=36, y=6030  (a*x + b*y = 268668.0)
   2. x=80, y=5937  (a*x + b*y = 268668.0)
   3. x=124, y=5844  (a*x + b*y = 268668.0)
   4. x=168, y=5751  (a*x + b*y = 268668.0)
   5. x=212, y=5658  (a*x + b*y = 268668.0)

26. 组合 a=93, b=61: 5 个有效解
   1. x=16, y=4380  (a*x + b*y = 268668.0)
   2. x=77, y=4287  (a*x + b*y = 268668.0)
   3. x=138, y=4194  (a*x + b*y = 268668.0)
   4. x=199, y=4101  (a*x + b*y = 268668.0)
   5. x=260, y=4008  (a*x + b*y = 268668.0)

27. 组合 a=93, b=70.5: 5 个有效解
   1. x=31, y=3770  (a*x + b*y = 268668.0)
   2. x=78, y=3708  (a*x + b*y = 268668.0)
   3. x=125, y=3646  (a*x + b*y = 268668.0)
   4. x=172, y=3584  (a*x + b*y = 268668.0)
   5. x=219, y=3522  (a*x + b*y = 268668.0)

28. 组合 a=93, b=75.5: 5 个有效解
   1. x=54, y=3492  (a*x + b*y = 268668.0)
   2. x=205, y=3306  (a*x + b*y = 268668.0)
   3. x=356, y=3120  (a*x + b*y = 268668.0)
   4. x=507, y=2934  (a*x + b*y = 268668.0)
   5. x=658, y=2748  (a*x + b*y = 268668.0)
计算耗时: 0.04秒