# ====================== 配置区 ======================
total = 145.9 # 可改:144.6 / 241.64 / 任意总数
price = 65 # 可改:64.5 / 65 / 任意单价
# ====================================================
import random
random.seed(1)
# 核心:单个金额不能超过1000元
max_single = round(1000 / price, 2)
count = int(total / max_single) + 1
nums = []
used = set()
base = round(total / count, 2)
# 生成:均匀 + 不超1000 + 合规 + 不重复
for i in range(count):
val = round(base + i * 0.02, 2)
# 强制不超过最大值(永远不超1000)
if val > max_single:
val = max_single
# 保证乘积是两位小数
for _ in range(500):
if (val * price * 100).is_integer():
break
val = round(val - 0.01, 2)
# 保证不重复
while val in used:
val = round(val - 0.02, 2)
used.add(val)
nums.append(val)
# 校准总和
current_sum = sum(nums)
diff = round(total - current_sum, 2)
for i in range(len(nums)):
new_val = round(nums[i] + diff, 2)
if 0 < new_val <= max_single and new_val not in used:
nums[i] = new_val
break
# 输出(你要的干净格式)
for num in nums:
print(f"{num:.2f}")
print(f"\n总和校验:{sum(nums):.2f}")
IyA9PT09PT09PT09PT09PT09PT09PT09IOmFjee9ruWMuiA9PT09PT09PT09PT09PT09PT09PT09CnRvdGFsID0gMTQ1LjkgICAgIyDlj6/mlLnvvJoxNDQuNiAvIDI0MS42NCAvIOS7u+aEj+aAu+aVsApwcmljZSA9IDY1ICAgICAjIOWPr+aUue+8mjY0LjUgLyA2NSAvIOS7u+aEj+WNleS7twojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmltcG9ydCByYW5kb20KcmFuZG9tLnNlZWQoMSkKCiMg5qC45b+D77ya5Y2V5Liq6YeR6aKd5LiN6IO96LaF6L+HMTAwMOWFgwptYXhfc2luZ2xlID0gcm91bmQoMTAwMCAvIHByaWNlLCAyKQpjb3VudCA9IGludCh0b3RhbCAvIG1heF9zaW5nbGUpICsgMQpudW1zID0gW10KdXNlZCA9IHNldCgpCmJhc2UgPSByb3VuZCh0b3RhbCAvIGNvdW50LCAyKQoKIyDnlJ/miJDvvJrlnYfljIAgKyDkuI3otoUxMDAwICsg5ZCI6KeEICsg5LiN6YeN5aSNCmZvciBpIGluIHJhbmdlKGNvdW50KToKICAgIHZhbCA9IHJvdW5kKGJhc2UgKyBpICogMC4wMiwgMikKCiAgICAjIOW8uuWItuS4jei2hei/h+acgOWkp+WAvO+8iOawuOi/nOS4jei2hTEwMDDvvIkKICAgIGlmIHZhbCA+IG1heF9zaW5nbGU6CiAgICAgICAgdmFsID0gbWF4X3NpbmdsZQoKICAgICMg5L+d6K+B5LmY56ev5piv5Lik5L2N5bCP5pWwCiAgICBmb3IgXyBpbiByYW5nZSg1MDApOgogICAgICAgIGlmICh2YWwgKiBwcmljZSAqIDEwMCkuaXNfaW50ZWdlcigpOgogICAgICAgICAgICBicmVhawogICAgICAgIHZhbCA9IHJvdW5kKHZhbCAtIDAuMDEsIDIpCgogICAgIyDkv53or4HkuI3ph43lpI0KICAgIHdoaWxlIHZhbCBpbiB1c2VkOgogICAgICAgIHZhbCA9IHJvdW5kKHZhbCAtIDAuMDIsIDIpCiAgICB1c2VkLmFkZCh2YWwpCiAgICBudW1zLmFwcGVuZCh2YWwpCgojIOagoeWHhuaAu+WSjApjdXJyZW50X3N1bSA9IHN1bShudW1zKQpkaWZmID0gcm91bmQodG90YWwgLSBjdXJyZW50X3N1bSwgMikKaWYgYWJzKGRpZmYpID4gMC4wMToKICAgIGZvciBpIGluIHJhbmdlKGxlbihudW1zKSk6CiAgICAgICAgbmV3X3ZhbCA9IHJvdW5kKG51bXNbaV0gKyBkaWZmLCAyKQogICAgICAgIGlmIDAgPCBuZXdfdmFsIDw9IG1heF9zaW5nbGUgYW5kIG5ld192YWwgbm90IGluIHVzZWQ6CiAgICAgICAgICAgIG51bXNbaV0gPSBuZXdfdmFsCiAgICAgICAgICAgIGJyZWFrCgojIOi+k+WHuu+8iOS9oOimgeeahOW5suWHgOagvOW8j++8iQpmb3IgbnVtIGluIG51bXM6CiAgICBwcmludChmIntudW06LjJmfSIpCgpwcmludChmIlxu5oC75ZKM5qCh6aqM77yae3N1bShudW1zKTouMmZ9Iik=