python 从100个数里不重复抽取5个数,抽取概率按数的大小
时间: 2024-05-14 20:19:30 浏览: 80
递减,如何实现?
可以使用Python内置的random模块中的sample函数来实现从100个数中随机抽取5个数且不重复。根据概率按数的大小递减这一要求,我们可以先对这100个数进行排序,然后按照排序后的顺序作为概率参数传给random.choices函数。实现代码如下:
```python
import random
nums = range(1, 101)
nums_probs = [i / sum(nums) for i in nums] # 根据数的大小递减生成概率参数
result = random.sample(nums, k=5, weights=nums_probs) # 从100个数中抽取5个数
print(result)
```
这样就可以实现按照数的大小递减进行抽取的功能了。
相关问题
python3 不重复从200个数中抽取5个数,顺序越大概率越大
可以使用python的random模块中的sample函数实现从200个数中抽取5个不重复的数,代码如下:
``` python
import random
sample_list = random.sample(range(1, 201), 5)
print(sample_list)
```
其中range(1, 201)可以生成一个包含1到200的整数序列,random.sample函数可以从这个序列中抽取5个不重复的数,并返回一个列表,最后将抽取的5个数打印出来即可。每次运行抽取结果都不同,且抽取结果不会有重复。
python3中,在从1到200抽取5个数,每个数抽取一次,数值越大抽取的概率越大
可以使用random.sample()函数来抽取不重复的随机数,并且可以对生成的数字进行权重控制,实现数字越大,抽取的概率越大。示例代码如下:
import random
weights = [i**2 for i in range(1, 201)] # 权重列表,数字越大,权重越大
numbers = random.choices(range(1, 201), weights=weights, k=5) # 抽取5个数字,每个数字抽取一次,使用权重控制
print(numbers) # 输出抽取的5个数字
阅读全文