# ====================== 配置区 ======================
total = 153.8 # 可改:144.6 / 241.64 / 任意总数
price = 64.5 # 可改: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}")
IyA9PT09PT09PT09PT09PT09PT09PT09IOmFjee9ruWMuiA9PT09PT09PT09PT09PT09PT09PT09CnRvdGFsID0gMTUzLjggICAgIyDlj6/mlLnvvJoxNDQuNiAvIDI0MS42NCAvIOS7u+aEj+aAu+aVsApwcmljZSA9IDY0LjUgICAgICMg5Y+v5pS577yaNjQuNSAvIDY1IC8g5Lu75oSP5Y2V5Lu3CiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKaW1wb3J0IHJhbmRvbQpyYW5kb20uc2VlZCgxKQoKIyDmoLjlv4PvvJrljZXkuKrph5Hpop3kuI3og73otoXov4cxMDAw5YWDCm1heF9zaW5nbGUgPSByb3VuZCgxMDAwIC8gcHJpY2UsIDIpCmNvdW50ID0gaW50KHRvdGFsIC8gbWF4X3NpbmdsZSkgKyAxCm51bXMgPSBbXQp1c2VkID0gc2V0KCkKYmFzZSA9IHJvdW5kKHRvdGFsIC8gY291bnQsIDIpCgojIOeUn+aIkO+8muWdh+WMgCArIOS4jei2hTEwMDAgKyDlkIjop4QgKyDkuI3ph43lpI0KZm9yIGkgaW4gcmFuZ2UoY291bnQpOgogICAgdmFsID0gcm91bmQoYmFzZSArIGkgKiAwLjAyLCAyKQoKICAgICMg5by65Yi25LiN6LaF6L+H5pyA5aSn5YC877yI5rC46L+c5LiN6LaFMTAwMO+8iQogICAgaWYgdmFsID4gbWF4X3NpbmdsZToKICAgICAgICB2YWwgPSBtYXhfc2luZ2xlCgogICAgIyDkv53or4HkuZjnp6/mmK/kuKTkvY3lsI/mlbAKICAgIGZvciBfIGluIHJhbmdlKDUwMCk6CiAgICAgICAgaWYgKHZhbCAqIHByaWNlICogMTAwKS5pc19pbnRlZ2VyKCk6CiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgdmFsID0gcm91bmQodmFsIC0gMC4wMSwgMikKCiAgICAjIOS/neivgeS4jemHjeWkjQogICAgd2hpbGUgdmFsIGluIHVzZWQ6CiAgICAgICAgdmFsID0gcm91bmQodmFsIC0gMC4wMiwgMikKICAgIHVzZWQuYWRkKHZhbCkKICAgIG51bXMuYXBwZW5kKHZhbCkKCiMg5qCh5YeG5oC75ZKMCmN1cnJlbnRfc3VtID0gc3VtKG51bXMpCmRpZmYgPSByb3VuZCh0b3RhbCAtIGN1cnJlbnRfc3VtLCAyKQppZiBhYnMoZGlmZikgPiAwLjAxOgogICAgZm9yIGkgaW4gcmFuZ2UobGVuKG51bXMpKToKICAgICAgICBuZXdfdmFsID0gcm91bmQobnVtc1tpXSArIGRpZmYsIDIpCiAgICAgICAgaWYgMCA8IG5ld192YWwgPD0gbWF4X3NpbmdsZSBhbmQgbmV3X3ZhbCBub3QgaW4gdXNlZDoKICAgICAgICAgICAgbnVtc1tpXSA9IG5ld192YWwKICAgICAgICAgICAgYnJlYWsKCiMg6L6T5Ye677yI5L2g6KaB55qE5bmy5YeA5qC85byP77yJCmZvciBudW0gaW4gbnVtczoKICAgIHByaW50KGYie251bTouMmZ9IikKCnByaW50KGYiXG7mgLvlkozmoKHpqozvvJp7c3VtKG51bXMpOi4yZn0iKQ==