鱼C论坛

 找回密码
 立即注册
查看: 2340|回复: 9

求随机代码编写方法

[复制链接]
发表于 2017-9-27 20:52:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入一个数,然后会随机一个数,如果这个数处于多少则返回多少这种代码应该怎么写
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-27 21:03:55 | 显示全部楼层
说明白点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-27 21:11:38 | 显示全部楼层

开宝箱根据权重获得对应的物品,如开1次金宝箱,流程可以如下:从1-总权重(10+20+30+50+90)中随机一个数,如果这个数处于1-10,则返回100001,处于(10+1)-(10+20)则返回100002,处于(1+10+20)-(10+20+30)则返回100003。。。类似。
如果玩家输入1,2,3中的某个数,按照上述给出概率打出对应的物品id(如玩家输入1,则在100001-100005中按照对应的权重,打印出一个)
就是这样,要怎么写啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-27 21:19:44 | 显示全部楼层
  1. def main():
  2.     import random
  3.     I = int(input('Input:'))
  4.     if 0 < I < 11:
  5.         print('你想打印的')
  6.     #其他判断
  7.         #我还是不懂你的意思
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-27 21:23:34 | 显示全部楼层

如果我输入1,它就会在1到230中随机一个数,如果那个数少于等于10,就打印10001,如果那个数大于10少于等于20,就打印10002这样子
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-27 21:28:49 | 显示全部楼层
  1. def main():
  2.     import random
  3.     I = int(input('Input:'))
  4.     if I == 1:
  5.         rd = random.randint(1,231)
  6.         if rd <= 10:
  7.             print(10001)
  8.         else:
  9.             print(10002)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-27 21:44:28 | 显示全部楼层

不行,我把这个要求给你看看,帮忙解答一下好嘛
    假定玩家开宝箱分别有三种类型1金宝箱,2银宝箱,3铜宝箱

        金宝箱1 可能开出物品包括 100001,100002,100003,100004,100005,它们分别的权重为10,20,30,50,90;

        银宝箱2 可能开出物品包括 200001,200002,200003,200004,200005,它们分别的权重为10,30,50,60,100;

        铜宝箱3 可能开出物品包括 300001,300002,300003,300004,300005,它们分别的权重为10,100,30,60,10;

    开宝箱根据权重获得对应的物品,如开1次金宝箱,流程可以如下:从1-总权重(10+20+30+50+90)中随机一个数,如果这个数处于1-10,则返回100001,处于(10+1)-(10+20)则返回100002,处于(1+10+20)-(10+20+30)则返回100003。。。类似。
执行drop.py文件开始。

        代码接受玩家输入,提示玩家可以输入0,1,2,3(一直接收玩家输入,直到玩家输入0退出)

        如果玩家输入0,则程序退出

        如果玩家输入1,2,3中的某个数,按照上述给出概率打出对应的物品id(如玩家输入1,则在100001-100005中按照对应的权重,打印出一个)
引用dropdata.py的数据

        执行drop.py文件后,完成上述流程
给定奖励表dropdata.py,内容如下:

data = {

    1:[

            {'itemid': '100001','weight': 10,},

        {'itemid': '100002','weight': 20,},

        {'itemid': '100003','weight': 30,},

        {'itemid': '100004','weight': 50,},

        {'itemid': '100005','weight': 90,},

],

    2:[

            {'itemid': '200001','weight': 10,},

        {'itemid': '200002','weight': 30,},

        {'itemid': '200003','weight': 50,},

        {'itemid': '200004','weight': 60,},

        {'itemid': '200005','weight': 100,},

],



    3:[

            {'itemid': '300001','weight': 10,},

        {'itemid': '300002','weight': 100,},

        {'itemid': '300003','weight': 30,},

        {'itemid': '300004','weight': 60,},

        {'itemid': '300005','weight': 10,},

],

}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-27 21:47:10 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-28 18:24:52 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-28 18:28:14 | 显示全部楼层
  1. import random, dropdata



  2. def test_drop(drop_id,drop_num):
  3.     list1 = []
  4.     box = [i['itemid'] for i in dropdata.data[drop_id]]
  5.     weight = [i['weight'] for i in dropdata.data[drop_id]]
  6.     for i in range(drop_num):
  7.         r = random.randint(1, sum(weight))
  8.         if r <= weight[0]:
  9.             list1.append(box[0])
  10.         elif r <= sum(weight[:2]):
  11.             list1.append(box[1])
  12.         elif r <= sum(weight[:3]):
  13.             list1.append(box[2])
  14.         elif r <= sum(weight[:4]):
  15.             list1.append(box[3])
  16.         else:
  17.             list1.append(box[4])
  18.     return list1
  19.                      
  20.             
  21.         
  22.    
  23. if __name__ == '__main__':
  24.     while True:
  25.         x = int(input('请输入宝箱种类:1金宝箱,2银宝箱,3铜宝箱,0退出:'))
  26.         if x == 0:
  27.             break
  28.         print(test_drop(x, 1))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-24 03:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表