Dugaan collatz:
Program berikut selalu berhenti:
void function( ArbitraryInteger input){
while( input > 1){
if(input % 2 == 0)
input /= 2;
else
input = (input*3) + 1;
}
// Halt here
}
Variasi sedikit (masih berupa dugaan, karena didasarkan pada hasil dari Collatz):
Untuk beberapa input, program berikut tidak akan pernah memasuki status yang sama dua kali (di mana status ditentukan oleh nilai yang dimiliki oleh "input"):
void function( ArbitraryInteger input){
while( input >= 1){ // notice the "="
if(input % 2 == 0)
input /= 2;
else
input = (input*3) + 1;
}
}
Perhatikan bahwa program kedua tidak pernah berhenti, terlepas dari apakah program pertama berhenti atau tidak.
Diyakini bahwa program pertama selalu berakhir untuk input apa pun, namun, kami tidak memiliki buktinya, dan mungkin masih ada beberapa bilangan bulat yang tidak dihentikan oleh program (ada juga hadiah $ 100 untuk membuktikannya) .
Program kedua juga menarik: ia menyatakan bahwa program tidak akan pernah memasuki keadaan yang sama dua kali untuk beberapa input, yang pada dasarnya mengharuskan program pertama untuk memiliki urutan dikenal menyimpang tanpa mengulangi. Ini tidak hanya mensyaratkan dugaan Collatz salah, tetapi juga mensyaratkan dugaan itu salah dan tanpa loop , terlepas dari loop 1,4,2,1 yang jelas.
Jika Collatz hanya memiliki perulangan contoh, variasi pada dugaan itu salah
Jika Collatz salah tanpa loop, variasi pada dugaan itu benar
Jika Collatz benar, variasinya salah
Jika Collatz salah baik karena memiliki loop dan karena memiliki nomor yang menyimpang, variasi pada dugaan itu benar (itu hanya membutuhkan nomor yang menyimpang tanpa memasuki lingkaran)
Saya pikir variasinya lebih menarik (bukan hanya karena saya menemukannya secara tidak sengaja dan menyadarinya berkat @LieuweVinkhuijzen), tetapi karena itu sebenarnya membutuhkan bukti nyata. Dengan memaksa kasar, kita mungkin dapat menemukan loop satu hari atau yang lain (dan itu akan menjadi loop lebih dari 70 angka: keadaan saat ini adalah bahwa tidak ada loop tak terbatas lebih pendek dari 68 atau lebih), dan kasar memaksa tidak menarik: itu hanya angka-angka. Namun kita tidak dapat dengan kasar memaksa urutan divergen tak terbatas, kita tidak tahu apakah itu akan benar-benar berakhir tanpa bukti nyata.
EDIT: Saya melewatkan bagian tentang dugaan Collatz, saya benar-benar menjawab dengan algoritma yang saya baca beberapa tahun yang lalu, saya tidak berharap itu sudah disebutkan.
EDIT2: Sebuah komentar membuat saya memperhatikan saya menulis algoritma dengan kesalahan, namun, kesalahan itu memang membuat jawaban saya berbeda dari dugaan Collatz (tetapi variasi langsung dari itu).