今天讀離散數(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