zoukankan      html  css  js  c++  java
  • python红包随机生成(隔板法)

    #红包生成思路
    #200 块钱 10个红包
    #0-200 的一个轴,随机取9个点,分成10段, 每一段的值表示一个红包的大小 #把输入的 money值 * 100 拿到的数值就是分, 不用再考虑单位是元的时候 保留2位小数 import random def red_pocket(money,num): money = money * 100 #把元 换算成分 ret = random.sample(range(1,money),num-1) #random.sample 要在列表中取值,所以要range一下,range(1,money)1是1分,再随机抽取9个数 ret.sort() # ***没有返回值*** # 对抽取的数进行排列 [3016, 8109, 12859, 13762, 14179, 14329, 15012, 17230, 19200] #在列表中插入 0 和200, 等会做减法算每一个红包的大小用 ret.insert(0,0) ret.append(money) # return ret [0, 2146, 2299, 2303, 5749, 8003, 8968, 14713, 17829, 19375, 20000] for i in range(len(ret)-1): gap = (ret[i+1] - ret[i])/100 #算出每一段的差值,再除以100 转换成单位元 yield gap # 分回一个生成器, 在抽红包之前就已经分好了,然后按照抽的顺序弹出红包金额 red_g = red_pocket(200,10) for i in red_g: print(i)
    复制代码
    当你的才华还撑不起你的野心的时候,你就应该静下心来学习; 当你的能力还驾驭不了你的目标时,就应该沉下心来历练。
  • 相关阅读:
    费马小定理
    CF 1365D Solve The Maze
    CF 1367D Task On The Board
    CF 1368B Codeforces Subsequences
    CF 1368C Even Picture
    mybatis框架
    Ajax
    jdbc
    jQuery
    JSP
  • 原文地址:https://www.cnblogs.com/ellisonzhang/p/10279155.html
Copyright © 2011-2022 走看看