教你用Ruby算命!

2021-08-23 13:50:31 字數 907 閱讀 3391

本文又名《看看我的破機器能算多少個梅森數出來》

**如下,

mersennes=

def is_prime?(n)

# 這裡是用了費馬小定理,很慢很慢!

(2..n-1).each

end(1..13).each do |n|

m=(2**n-1)

mersennes

#上面這個寫法,2**x要計算兩次,寫法好看,但效能很低

p mersennes

我算到(1..14)這裡就不敢再增加range的範圍了,(1..15)我的台式電腦跑了半天也沒有跑出結果,看來我的電腦太慢了。

最後我得到的梅森數陣列是:

[1, 3, 7, 31, 127, 8191]

我只算到了m4,1不算梅森數。

對照梅森數的發現史,我發現歷史上從m5開始的發現者才被歷史記錄,m4及以前的發現者都被遺忘了,或者估計其它的成就沒有多少,碌碌無為。以前算到m4的那哥們是個無名氏,苦命的孩兒啊。我估計大部分人也都差不多會碌碌無為終了一生。目前我只能算到這一位,等有空用erlang改進下看看,看看自己能否進入被歷史記住的人物名單。

我說完了,你們自己也算算吧,看你們排行老幾。

ps:我那個is_prime?這個判斷素數的演算法是很浪費效能的,不過它不會錯過乙個漏網之魚,比miller-rabin演算法好在這裡,但是太慢!

梅森素數列表:[url]梅森素數&variant=zh-cn[/url]

[img]/upload/attachment/91989/90421bb9-6415-3942-bd9f-730b0ac7a490.png[/img]

《純粹娛樂,別太計較,不過很好玩^-^》

手把手教你用Ucos

ucos作業系統的學習 實時作業系統 任務切換,排程 分式作業系統 不可剝奪型核心 ucosii嵌入式實時作業系統的源 分為三部分 與硬體無關的核心 與處理器有關的移植 和使用者配置檔案。ucos最多支援64個任務,優先順序分別對應0 63,其中0為最高優先順序,系統保留4個最高優先順序的任務,和4...

教你用Python感受量子霸權

用python的qiskit包體驗量子演算法 一 qiskit的安裝 目前ibm推出的qiskit是非常棒的python量子模擬器,安裝非常簡單 另外如果各位讀者之前有ibm q的帳號,也可以到環境去感受。基本量子邏輯門介紹 pauli x gate 相當於經典的邏輯非門。pauli y gate ...

教你用SQL實現統計排名

前言 在某些應用場景中,我們經常會遇到一些排名的問題,比如按成績或年齡排名。排名也有多種排名方式,如直接排名 分組排名,排名有間隔或排名無間隔等等,這篇文章將總結幾種mysql中常見的排名問題。建立測試表 create table scores tb id int auto increment pr...