樹心幽徑

« 20200430用LibreOffice的scalc進行迴歸分析 | Main | 20200525在90.2Fedora LINUX機器昇級PHP »

20200513用JavaScript產生卡拉茲數列並一一PUSH入b陣列中,再一一自b陣列POP出來
2020/05/13,15:30

(0)卡拉茲猜想:取任意一個自然數m,若m是偶數,執行m/2;若m是奇數,則執行3m+1,如此反覆疊代下去,必定會落入到4,2,1的陷阱中來。
我們隨便測試幾個數吧,比如17:52‑>26->13->40->20->10->5->16->8->4->2->1;

原文網址:https://kknews.cc/news/5e8342l.html

(1) 在notepad(記事本)輸入如下程式碼並存檔為d:\a.htm(存檔類型要選所有檔案)

<body bgcolor=lightblue>
<script>
var b=[];

var x= parseInt(prompt("請輸入x=","7"));
document.write("你輸入的x=" + x + "<br>");
do  {
  b.push(x);  document.write( x +  " : ");
  if (x % 2==0 ) x= parseInt(x / 2);
  else x=3*x+1;
} while (x > 1);
b.push(x);  document.write( x + ":將卡拉茲數列一一PUSH到堆疊b完成。<br>");

document.write("將堆疊b中的卡拉茲數列一一POP出來如下:<br>");
while (b.length > 0) {
    x=b.pop();
    document.write( x + " : ");
    }
</script>
</body>


(2)用firefox開啟d:\a.htm,瀏覽結果如下:

你輸入的x=7
7:22:11:34:17:52:26:13:40:20:10:5:16:8:4:2:1:將卡拉茲數列一一PUSH到堆疊b完成
將堆疊b中的卡拉茲數列一一POP出來如下:
1 : 2 : 4 : 8 : 16 : 5 : 10 : 20 : 40 : 13 : 26 : 52 : 17 : 34 : 11 : 22 : 7 :

 

(3)可參考的JavaScript程式

迴響

 
Accessible and Valid XHTML 1.0 Strict and CSS Powered by LifeType