簡體   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