【时事篇-05-04】20240224 27笔货币基金中有3笔250元的具体数目测算( itertools)

结果展示

背景需求:

前文测算了27只货币基金,如果存145、146、147、148、149、150元分别需要存几笔。结果是4、4、4、5、5、5

【时事篇-05-03】20240222 金额145-150元填充27笔货币基金的具体数目测算( itertools)-CSDN博客文章浏览阅读618次,点赞26次,收藏11次。【时事篇-05-03】20240222 金额145-150元填充27笔货币基金的具体数目测算( itertools)https://blog.csdn.net/reasonsummer/article/details/136243565

后续我想起 有3只货币基金,虽然显示7天年化在2.0%以上,但是实际需要250元才能保证每天1分钱

因此在27笔中需要划出3笔专门投250元,其余24笔在145-150之间等额分配(每笔4次)

代码展示:




'''
150元存钱游戏(需要27笔,在145-150之间推算,145元会是几笔,146元几笔……最后计算24笔一共多少元,3笔必须250元)
作者:阿夏
时间:2024年2月24日
'''


import itertools
# 缺27只
d=27
# 其中3只必须250元
p=3
# 145-150元的范围
q=d-p

# q=int(input('缺几只?24只\n'))

# 金额范围 6只 145、146、147、148、149、150
m=[]
for i in range(145,151):
    m.append(i)
m.append(250)
print(m)
# [145, 146, 147, 148, 149, 150, 250]
n=len(m)
# print(n)
# 7


# 27平均分配到5个里
f1=int(d/n)
print(f1)
# 27/7=3 
# 范围3-4之间
f2=int(f1)+1

numbers = range(f1,f2+1)
combinations = itertools.combinations_with_replacement(numbers, n)

com=[]
for combination in combinations:
    if sum(combination) == d:
        c=list(combination)        # 145-150的24笔
        # c.append(p)        # 250的3笔
        com.append(combination)        

print(c)
# [3, 4, 4, 4, 4, 4, 4]
# 最后一个是3项目 倒置列表
c.reverse()
print(c)
# [4, 4, 4, 4, 4, 4, 3]

print(sum(c),'笔,',f1,'元到',f2,'元,共有',len(com),'种排列')
# # # [4, 4, 4, 4, 4, 4, 3] 

all=[]
s=[]
for b in range(len(m)):
    all.append('{}*{}'.format(m[b],c[b]))
    s.append(m[b]*c[b])
print('每笔金额、笔数:',all)
# 每笔金额、笔数: ['145*4', '146*4', '147*4', '148*4', '149*4', '150*4', '250*3']
print('合计金额: ',sum(s))

# # 合计金额:   4290


代码说明

如果需要存的是4笔250元,就不用做倒置了。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值