fork(1) download
  1. # ====================== 配置区 ======================
  2. total = 97.1
  3. price = 65
  4. # ====================================================
  5.  
  6. import random
  7.  
  8. max_single = 1000 / price
  9. count = int(total / max_single) + 1
  10. nums = []
  11. used = set()
  12. base = total / count
  13.  
  14. # 先生成一组数字
  15. while len(nums) < count:
  16. val = round(base + random.uniform(-0.1, 0.1), 2)
  17. if 0 < val <= max_single and val not in used:
  18. used.add(val)
  19. nums.append(val)
  20.  
  21. # 【暴力精准校准:直接强制等于 153.8】
  22. current_sum = sum(nums)
  23. nums[-1] = round(total - sum(nums[:-1]), 2)
  24.  
  25. # 输出
  26. for num in nums:
  27. print(f"{num:.2f}")
  28. print(f"\n总和校验:{sum(nums):.2f}")
Success #stdin #stdout 0.03s 11636KB
stdin
Standard input is empty
stdout
13.93
13.85
13.89
13.92
13.81
13.94
13.76

总和校验:97.10