拼手气发红包
# 注意每个人抢到的钱数的概率都是均等的
# 注意抢到的金额精确到分
import random def func(): money = input('请输入金额:') num = input('请输入红包个数:') # 将输入的金额扩大100倍,从中挑出红包个数减1的 m = random.sample(range(1,int(money)*100),int(num)-1) # 从小到大排序 m.sort() # 将0插入到索引为0的位置,即第一个位置 m.insert(0,0) # 将总钱数乘100后添加到列表的最后一个位置 m.append(int(money)*100) # 循环m的长度的次数。 lis = [] for i in range(len(m)-1): # m取索引+1的值减去当前索引的值,除以100 result = (m[i+1]-m[i])/100 print(result) # 每个红包大小 lis.append(result) print(sum(lis)) # 红包总大小 func() # 这个思想就是分段,先随机出想要发的红包数减1,然后进行排序,将0添加到列表中,再将总钱数添加到列表中 # 此时等于对总钱数进行了分段处理。