鱼C论坛

 找回密码
 立即注册
查看: 2783|回复: 4

[已解决]怎么生成不同的随机数?

[复制链接]
发表于 2023-3-6 17:23:45 | 显示全部楼层 |阅读模式

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

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

x
比如在循环里面要生成[0,5]之间的随机整数,第一次循环得到了2这个随机整数,要求下一次循环得到不为2但是在这个区间的随机整数,以此类推,代码应该怎么写?
最佳答案
2023-3-6 17:31:54
如果你想在循环里面生成[0,5]之间的随机整数,你可以先创建一个列表包含这个区间内的所有整数,

然后用sample函数从中选择一个元素,并把它从列表中移除,这样就保证了每次循环得到的随机数都不同。

代码如下:
import random
# 创建一个包含[0,5]之间所有整数的列表
numbers = list(range(6))
# 循环5次
for i in range(5):
    # 从列表中随机选择一个元素,并把它从列表中移除
    num = random.sample(numbers, 1)[0]
    numbers.remove(num)
    # 打印随机数
    print(num)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-6 17:30:04 From FishC Mobile | 显示全部楼层
一次生成不行吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-6 17:31:54 | 显示全部楼层    本楼为最佳答案   
如果你想在循环里面生成[0,5]之间的随机整数,你可以先创建一个列表包含这个区间内的所有整数,

然后用sample函数从中选择一个元素,并把它从列表中移除,这样就保证了每次循环得到的随机数都不同。

代码如下:
import random
# 创建一个包含[0,5]之间所有整数的列表
numbers = list(range(6))
# 循环5次
for i in range(5):
    # 从列表中随机选择一个元素,并把它从列表中移除
    num = random.sample(numbers, 1)[0]
    numbers.remove(num)
    # 打印随机数
    print(num)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2023-3-6 17:32:41 | 显示全部楼层
x = int(input('请输入最小值:'))
y = int(input('请输入最大值:'))
l = list(range(x, y+1))
for i in range(len(l)):
    t = random.randint(0, len(l)-1)
    print(f'第{i+1}次随机,结果为{l[t]}')
    l = l[:t] + l[t+1:]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-3-7 08:32:45 | 显示全部楼层
设置个变量记录上次的数,这次的数与上次的一样,就跳过本次循环,继续循环再生成一个随机数,继续与上次的数进行比较,不相同就输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 08:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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