Python中基于固定种子生成指定范围均匀分布整数随机数
解决方法
首先,你的现有代码有两个需要修正的问题:
random.uniform生成的是浮点数,不符合你要整数的需求;- 代码里的上限写的是200,和你要求的2000000不符。
要实现固定种子+整数随机数的需求,按以下步骤操作:
- 设置固定种子:在生成任何随机数之前,调用
random.seed(2),这样每次运行程序时,生成的随机序列都会完全一致。 - 替换生成整数的方法:用
random.randint()代替random.uniform(),这个函数专门生成指定闭区间内的整数均匀分布随机数,参数格式是randint(最小值, 最大值)。
完整示例代码:
import random # 替换成你实际使用的字符串 String = "your_target_string" min_val = len(String) max_val = 2000000 # 固定种子2,必须在生成随机数前执行 random.seed(2) # 生成符合要求的整数随机数 x = random.randint(min_val, max_val) print(x)
关键点说明
- 种子设置必须放在所有随机操作的最前面,否则之前的随机操作会破坏固定序列的一致性;
randint(a, b)会生成包含a和b在内的整数,完全匹配你“字符串长度至2000000之间”的范围要求;- 只要每次运行都先执行
random.seed(2),不管运行多少次,得到的x值都会完全相同。
内容的提问来源于stack exchange,提问作者HaMo
相关产品推荐
相关产品推荐

