在 Python 中生成隨機質數
本教程演示了在 Python 中生成和輸出任何隨機質數的方法。
質數是在程式設計中使用的非常有用的常量,尤其是在密碼學中。質數的使用對於加密和雜湊至關重要,因為它們可用於加密和雜湊敏感資料,並防止它們被隨意解密。
建立一個函式以生成給定範圍的隨機質數
質數只有 2 個因數(因數是可以將另一個數相除並得到整數的數)。質數只能被 1 及其自身整除。
從技術上講,不可能生成一個從 0 到無窮大的隨機質數,因為這將需要很多處理能力才能使其保持數量龐大。
鑑於此,需要包含一定範圍的數字作為引數,以在設定範圍內收集質數。
首先要做的是建立一個函式,以將給定範圍內的所有質數收集到一個列表中。對於此函式,迴圈該範圍內的所有數字,並檢查是否只有 1 和它本身是可除數。
def primesInRange(x, y):
prime_list = []
for n in range(x, y):
isPrime = True
for num in range(2, n):
if n % num == 0:
isPrime = False
if isPrime:
prime_list.append(n)
return prime_list
print(primesInRange(100, 250))
輸出將列印從給定範圍 100 到 250 的所有質數。
輸出:
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241]
下一步是根據函式 primesInRange()
返回的質數範圍內生成一個隨機數。
在 Python random
模組下,它具有一個名為 choice()
的函式,該函式從給定的可迭代或序列中選擇一個隨機元素。
給定上面實現的函式 primesInRange()
,使用列表變數捕獲返回值,並使用 random.choice()
在列表中選擇一個隨機質數。使用 choice()
函式之前,不要忘記匯入 random
模組。
import random
prime_list = primesInRange(100,250)
randomPrime = random.choice(prime_list)
print('Generated random prime number: ', randomPrime)
樣本隨機輸出:
Generated random prime number: 191
這是此解決方案的完整原始碼。
import random
def primesInRange(x, y):
prime_list = []
for n in range(x, y):
isPrime = True
for num in range(2, n):
if n % num == 0:
isPrime = False
if isPrime:
prime_list.append(n)
return prime_list
prime_list = primesInRange(100,250)
randomPrime = random.choice(prime_list)
print('Generated random prime number: ', randomPrime)
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn