第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python secrets.randbits 一旦增加到 16 以上就永遠(yuǎn)需要

Python secrets.randbits 一旦增加到 16 以上就永遠(yuǎn)需要

胡子哥哥 2023-06-13 11:09:29
我一直在嘗試在 python 腳本中實(shí)現(xiàn)Fermat 測(cè)試以生成一個(gè)大素?cái)?shù),我希望在大素?cái)?shù)上使用它,并且它可以快速且?guī)缀跬昝赖赜糜?16 位生成,但是如果我將它設(shè)置為 32它根本不運(yùn)行。對(duì)于快速上下文,F(xiàn)ermat 測(cè)試應(yīng)該運(yùn)行 x 次試驗(yàn)(在我的代碼中設(shè)置為 5 只是為了我可以看看它是否有效,但在使用中我可能會(huì)將其設(shè)置為更高的 ~20 或其他)來測(cè)試是否數(shù)是否為素?cái)?shù)。因此,我使用 secrets.randbits 生成大量數(shù)字,然后使用 Fermat 測(cè)試檢查它們是否是素?cái)?shù),如果不是,我會(huì)選擇一個(gè)不同的素?cái)?shù)并再次運(yùn)行直到找到一個(gè)。將位設(shè)置為 16,代碼運(yùn)行速度很快,在發(fā)現(xiàn)它們是復(fù)合的并選擇不同的之前,將許多不同的數(shù)字打印到測(cè)試的日志中,但是一旦設(shè)置為 32,就什么都沒有打印,我真的不知道為什么。secrets.randbits 是否只對(duì)增加的位工作/花費(fèi)指數(shù)級(jí)的時(shí)間,因?yàn)樵?16 位時(shí)程序幾乎立即運(yùn)行,但它似乎在 32 位時(shí)根本不起作用。這是我的代碼:import secrets import mathdef fermat_test(n): # this is the correct algorithm from the video and it works set at 16 bits    for x in range(1, 5): # to run 5 trials        if (pow(secrets.randbelow(n - 1) + 1, (n - 1)) % n) != 1:             return False    return Truebits = 16 # changing this to 32 the program will seemingly idle, not printing anything to consolerand = secrets.randbits(bits)while (not fermat_test(rand)): # while the number is not prime    print(rand) # prints the number being checked    rand = secrets.randbits(bits)print(rand)抱歉,如果這太復(fù)雜了,我可以嘗試對(duì)其進(jìn)行編輯以重寫所有內(nèi)容。Python密碼學(xué)
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

好消息:這與secrets. 改變這個(gè):

        if (pow(secrets.randbelow(n - 1) + 1, (n - 1)) % n) != 1:

對(duì)此:

        if pow(secrets.randbelow(n - 1) + 1, (n - 1), n) != 1:

3 參數(shù)pow()非常有效地計(jì)算模冪。您編寫的內(nèi)容反而創(chuàng)建了一個(gè)巨大的整數(shù)(您基本上是將 32 位整數(shù)提升為 32 位冪 - 結(jié)果將達(dá)到數(shù)十億位十進(jìn)制數(shù)字),然后才進(jìn)行模運(yùn)算。


查看完整回答
反對(duì) 回復(fù) 2023-06-13
  • 1 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)