本文主要是介绍【时事篇-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)+1numbers = 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元,就不用做倒置了。
这篇关于【时事篇-05-04】20240224 27笔货币基金中有3笔250元的具体数目测算( itertools)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!