切換
舊版
前往
大廳
主題

【C++】3x+1 猜想

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

今天讀離散數學讀到3x+1猜想,這真的是一個相當有趣的臆測,約略敘述一下什麼是3x+1猜想,

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

相當有趣是吧?
發現這個猜想就想說用快一年沒用的C++來寫寫看,花了一小時把它寫出來,應該不會有什麼BUG,測試了4~5個整數都沒錯(超混)。 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


創作回應

解凍豬腳

離散數學啊……看起來對我來說還好遙遠[e36]
2012-09-22 00:07:01

相關創作

更多創作