2015-04-02 213 views

回答

1

在循環中,您用作字典中的鍵的z值始終爲g**r % p。這可以讓你擺脫z可變的,並直接從r(和gp)計算你的鑰匙:

D = {g**r % p: r for r in xrange(m)} 
+0

基本上我想盡可能快地運行循環。重複計算g ** r%p需要比循環多的時間。你知道任何方法嗎? – 2015-04-02 17:24:13

+0

嗯,我不認爲有任何方法可以在表達式中進行z = z * g%p計算。也許你可以編寫一個生成器函數來執行它,然後在理解中將'generator'與'xrange'一起壓縮?如果性能比可讀性更重要,我會堅持使用你的循環。 – Blckknght 2015-04-02 20:01:21