Büyük
Ödül
Aşağıda Mindcell'in register edilmesinde
kullanılan kodu görüyorsunuz.
|
d=1;f=1;n=1; a=StrToFloat(Edit1->Text);
b=StrToFloat(Edit2->Text);
c=StrToFloat(Edit3->Text);
|
Veri
Girişi |
for (e=1;e<a;e++)
for (y=1;y<b;y++)
for (k=1;k<c;k++)
{ d=d+e ;
f=f+y ;
m=f*k-d*k;
n=n+m ;
}
|
Döngüler
ve işlemler |
Edit4->Text=FloatToStr(n); |
Sonuç |
ÖDÜL |
10000$ |
Burada bitmesi
normalde yüzlerce yıl sürecek döngüler mevcut. Yani
sonuca ulaşmak için yüzlerce yıl beklemeniz lazım.
Buradaki döngülerin ne kadar zaman
alacağını yaklaşık olarak hesaplamaya çalışalım.
Döngü sayısı = a x b x c
olduğuna göre istediğimiz minimum basamak için, yani 12 hane için 100000000000 x 100000000000 x 100000000000 = 1033 tür. Yani 10 33
döngü adımı vardır.
Buda göre her bir adımın
alacağı süre ile bu adım sayısını çarparak döngülerin bitmesi için gerekli süreyi bulabiliriz.
10 GHz'lik bir işlemcide saniyede 10000000000 =1010
işlem yapılır. (Bunun sadece cycle sayısı
olduğunu ve basit bir toplama için bile çok sayıda cycle
gerektiğini hesaba katmıyoruz. Bu hesaba katılırsa sonuç yüzlerce kat fazla olur.
Ayrıca sayının büyümesi ile bir işlem için gerekli cycle
sayısı da artar.)
10 Ghz'lik makinede bu döngülerin
alacağı süre = 1033 /1010 = 1023 saniyedir.
Bunu da yıla çevirirsek 3.17x1015 yıl çıkar.