ETH官方钱包

切換
舊版
前往
大廳
主題

【C++】3x+1 猜想

鍋貼企鵝 | 2012-07-01 20:41:45 | 巴幣 4 | 人氣 1005

今天讀離散數(shù)學(xué)讀到3x+1猜想,這真的是一個(gè)相當(dāng)有趣的臆測(cè),約略敘述一下什麼是3x+1猜想,

假設(shè)有一正整數(shù)x,如果是奇數(shù),則把x變成3x+1,如果是偶數(shù)則x變成x/2,重複此步驟,一定可以把x變成1,便是這猜測(cè)的全部,既然說(shuō)是猜測(cè),就是還沒(méi)有證明可以確定這樣對(duì)於全部正整數(shù)都是對(duì)的,但根據(jù)維基百科,已經(jīng)驗(yàn)證正整數(shù)到 20 × 258 = 5,764,607,523,034,234,880,也仍未有找到例外的情況。

相當(dāng)有趣是吧?
發(fā)現(xiàn)這個(gè)猜想就想說(shuō)用快一年沒(méi)用的C++來(lái)寫寫看,花了一小時(shí)把它寫出來(lái),應(yīng)該不會(huì)有什麼BUG,測(cè)試了4~5個(gè)整數(shù)都沒(méi)錯(cuò)(超混)。 XDD

附上程式碼:




#include<iostream>

using namespace std;

int main()
{
    int k=0;
    int a,n,b;
    cout << "Please Enter a Integer :" <<endl;
    cin >> n;
    a=n;
    while(n!=1&&n>1)
    {
              b=n%2;
              if(b==0)
                 {
                        n = n/2;
                 }   
              else
                 {
                        n=3*n+1;
                 }
              k++;
    }
    cout << a << " follow 3n+1 conjecture " <<endl<< "using " << k << " steps";
    system("pause");
    return 0;
}



附上編譯完成的exe檔:3x+1 conjecture.exe


創(chuàng)作回應(yīng)

解凍豬腳

離散數(shù)學(xué)啊……看起來(lái)對(duì)我來(lái)說(shuō)還好遙遠(yuǎn)[e36]
2012-09-22 00:07:01

相關(guān)創(chuàng)作

更多創(chuàng)作