繁体   English   中英

如何生成一些全为奇数的随机数

[英]How do I generate a number of random numbers that are all odd

import random

myfile = open('numbers.txt', 'w')
file_size = random.randint(4,7)

for count in range(file_size):
    numbers = random.randint(5,19)
    myfile.write(str(numbers) + '\n')

myfile.close()

这是我到目前为止所拥有的,但我需要数字是所有赔率和“file_size”告诉代码的正确赔率。 每个 integer 必须是随机的,介于 5 和 19 之间(含)。

您可以使用接受可选step参数的random.randrange

>>> import random
>>> random.randrange(5, 19+1, 2)
9

要生成 1 到 10 之间的奇数,请使用random.randrange(start,end,step)

odd_rand_num = random.randrange(1,10,2)
odd_rand_num = 7

要生成随机奇数列表,请使用以下命令:

odd_rand_list = [random.randrange(1,10,2) for p in range(0,10)]
odd_rand_list = [3, 9, 7, 9, 1, 1, 9, 7, 3, 9]

或者,地板除以二加一

2*(k//2)+1

总会给你一个奇数...

import random
odd = 2*(random.randint(5,19)//2)+1

另一种方法:

import random

with open('numbers.txt', 'w') as myfile:
    file_size = random.randint(4,7)

    for count in range(file_size):
        numbers = random.choice(range(5, 19+1, 2))
        myfile.write(str(numbers) + '\n')

OP 代码中的更正:

import random

myfile = open('numbers.txt', 'w')
file_size = random.randint(4, 7)

for count in range(file_size):
    while True:
        number = random.randint(5, 19)
        if number % 2 == 1:
            break
    myfile.write(str(number) + '\n')

myfile.close() 

使用random.randrange() function,并从奇数开始,例如:

import random
for i in range(40):
    x = random.randrange(3, n, 3)
    print(f"{x}/3:\t", x/3)

使用randrange如下:

import random as rn
a = rn.randrange(0,100,2)
b = a + 1
print (b)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM