Collatz varsayımı:
Aşağıdaki program daima durur:
void function( ArbitraryInteger input){
while( input > 1){
if(input % 2 == 0)
input /= 2;
else
input = (input*3) + 1;
}
// Halt here
}
Hafif çeşitlilik (hala bir varsayım, çünkü Collatz'ın sonucuna dayanıyor):
Bazı girdiler için aşağıdaki program asla iki kez aynı duruma girmez (burada durum "girdi" tarafından tutulan değer tarafından belirlenir):
void function( ArbitraryInteger input){
while( input >= 1){ // notice the "="
if(input % 2 == 0)
input /= 2;
else
input = (input*3) + 1;
}
}
İlk programın durup durmadığına bakılmaksızın, ikinci programın hiç durmadığını unutmayın.
İlk programın her zaman herhangi bir girdi için sonlandırıldığına inanılıyor, ancak bunun kanıtına sahip değiliz ve hala programın durmadığı bazı tamsayılar olabilir (bunun kanıtlanması için 100 dolarlık bir ödül de var) .
İkinci program da ilginçtir: bazı girdiler için programın hiçbir zaman iki kez aynı duruma girmeyeceğini belirtir; bu, temelde ilk programın tekrar etmeden birbirinden ayrıldığı bilinen bir sekansa sahip olmasını gerektirir. Sadece Collatz varsayımının yanlış olmasını gerektirmez , aynı zamanda açık 1,4,2,1 döngüsünden ayrı olarak yanlış ve döngüsiz olmasını gerektirir .
Collatz sadece döngü karşıt örneklere sahipse, varsayımdaki varyasyon yanlıştır
Collatz döngü olmadan yanlışsa, varsayımdaki varyasyon geçerlidir
Collatz doğruysa, varyasyon yanlış
Collatz hem döngüler olduğu hem de ayrıldığı bir sayıya sahip olması nedeniyle yanlışsa, varsayımdaki varyasyon geçerlidir (sadece bir döngüye girmeden ayrıldığı bir sayı gerektirir).
Varyasyonun daha ilginç olduğunu düşünüyorum (sadece kazayla bulduğum ve @LieuweVinkhuijzen sayesinde fark ettiğim için değil), ama aslında gerçek bir kanıt gerektirdiği için. Zorla zorlama ile, bir gün veya başka bir döngü bulabiliriz (ve bu 70 sayıdan daha uzun bir döngü olacaktır: mevcut durumun 68'den daha kısa sonsuz döngüler olmaması) ve kaba zorlama ilginç değildir: sadece sayı çatırtıdır. Bununla birlikte, sonsuz bir farklı diziyi kaba şekilde zorlayamayız, gerçek bir kanıt olmadan gerçekten bitip bitmeyeceğini bilmiyoruz.
EDIT: Collatz Conjecture ile ilgili kısmı atladığım için üzgünüm, birkaç yıl önce okuduğum bir algoritma ile gerçekten kalpten cevap verdim, daha önce bahsedilmesini beklemiyordum.
EDIT2: Bir yorum, algoritmayı yanlış yazdığımı fark etmemi sağladı, ancak bu hata aslında cevabımı Collatz varsayımından (ancak bunun doğrudan bir varyasyonundan) farklı kılıyor.