274 basamak
4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111
Bu, bulmak için yaklaşık 20 saat CPU süresi ve kanıtlamak için yaklaşık 2 dakika sürdü. Buna karşılık, 84 haneli çözüm yaklaşık 3 dakika içinde bulunabilir.
84 basamak
444444444444444444444444444444444444444444444444441111111113333333333333333333333333
77777777999999999999999777777777 (32 hane)
66666666666666622222222222222333 (32 hane)
6477777777777777777777777 (27 hane)
44444441333333333333 (20 hane)
9999966777777777 (18 hane)
1677 (15 hane) 1677
Önceliği onaylamak istiyorsanız bu aracı tavsiye ederim: D. Alpern'in ECM Uygulaması
Ayrıca, büyük değerler bulma olasılığı en yüksek olan yaklaşım gibi bir repdigit yaklaşımı kullanmak. Aşağıdaki komut dosyası, 2, 3, 5 ve şimdi 11 c / o PeterTaylor'ın katları ile sonuçlanacak çoğu sayı veya kesimi algoritmik olarak atlar (katkısı verimliliği yaklaşık% 50 arttırmıştır).
from my_math import is_prime
sets = [
(set('147'), set('0147369'), set('1379')),
(set('369'), set('147'), set('1379')),
(set('369'), set('0369'), set('17')),
(set('258'), set('0258369'), set('39')),
(set('369'), set('258'), set('39'))]
div2or5 = set('024568')
for n in range(3, 100):
for sa, sb, sc in sets:
for a in sa:
for b in sb-set([a]):
bm1 = int(b in div2or5)
for c in sc-set([b]):
if int(a+b+c)%11 == 0: continue
for na in xrange(1, n-1, 1+(n&1)):
eb = n - na
for nb in xrange(1, eb-bm1, 1+(~eb&1)):
nc = eb - nb
if not is_prime(long(a*(na-1) + b*nb + c*nc)):
continue
if not is_prime(long(a*na + b*(nb-1) + c*nc)):
continue
if not is_prime(long(a*na + b*nb + c*(nc-1))):
continue
if not is_prime(long(a*na + b*nb + c*nc)):
continue
print a*na + b*nb + c*nc
my_math.py
burada bulabilirsiniz: http://codepad.org/KtXsydxK
Alternatif olarak, GMPY Projectgmpy.is_prime
fonksiyonunu da kullanabilirsiniz.
Profil oluşturma sonucunda bazı küçük hız iyileştirmeleri. Dört adayın en uzun ilişkin asallık onay sonuna taşındı xrange
cümledeki range
ve long
cümledeki int
yayınları yazın. int
değerlendirilen ifade a long
.
Bölünebilirlik Kuralları
N , a , b ve c tekrarlanan rakamlar olan a ... ab ... bc ... c formunun postitif bir tamsayısı olsun .
2 ile 5 ile
- bölünme önlemek için 2 ve 5 , C grubu olmayabilir [0, 2, 4, 5, 6, 8] . Ek olarak, b bu kümenin bir üyesiyse, c'nin uzunluğu 2'den az olamaz.
3'e göre
- N = 1 (mod 3) ise , N [1, 4, 7] 'nin herhangi birini içermeyebilir , çünkü bunlardan herhangi birinin kaldırılması önemsiz bir şekilde 3'ün katıyla sonuçlanacaktır . Aynı şekilde N = 2 (mod 3) ve [2, 5, 8] için . Bu uygulama, bunun biraz zayıflamış bir formunu kullanır: N , [1, 4, 7] 'den birini içeriyorsa, [2, 5, 8]' den herhangi birini içermeyebilir veya tam tersi de olabilir. Ayrıca, N sadece [0, 3, 6, 9] 'dan ibaret olmayabilir . Bu büyük ölçüde eşdeğer bir ifadedir, ancak a , b ve c gibi bazı önemsiz durumlara izin verir.her biri 3 defadan fazla tekrarlanır .
11 tarafından
- zamanda PeterTaylor uyarılara, N formdadır aabbcc ... xxyyzz , bu basamak kez eşit sayıda tekrarlanan tek oluşur olduğu, bu tarafından trivially bölünemeyen 11 : a0b0c ... x0y0z . Bu gözlem, arama alanının yarısını ortadan kaldırır. Eğer K tek uzunlukta, daha sonra uzunluğa sahiptir , bir , b ve c her iyi (% 75 arama alanı azalması) ve tek olmalıdır, ve eğer , N , sonra da uzunluğun sadece bir tanesidir bir , b ya da c bile olabilir uzunluğunda (% 25 arama alanı azaltma).
- Konjektif: Eğer abc bir katı olan 11 , örneğin, 407 , daha sonra tüm tek tekrarlar bir , b ve c de katları olacak , 11 . Bu, 11 bölünme ile yukarıdaki bölünebilirliğin kapsamı dışında kalmaktadır ; aslında, açıkça izin verilenler arasında sadece tek tekrarlar vardır. Bunun için bir kanıtım yok, ancak sistematik testler karşı bir örnek bulamadı. Karşılaştırma: 444077777 , 44444000777 , 44444440000077777777777 , vb. Herkes bu varsayımı kanıtlamaktan ya da reddetmekten çekinmeyin. aditsu o zamandan beri bunun doğru olduğunu gösterdi.
Diğer formlar
2 tekrarlanan rakam seti Randomra'nın izlediği
formun sayıları , a ... ab ... b , çok daha nadir görülür. 10 1700'den daha azı , en büyüğü 12 basamak uzunluğunda sadece 7 çözüm var .
4 tekrarlanan rakam kümesi
Bu formun sayıları, ... ab ... bc ... cd ... d , aradığımdan daha yoğun dağılmış gibi görünüyor. En az 69 çözümler vardır , 10 , 100 tekrar basamak 32 kullanılarak 3 kümelerine kıyasla,. Arasında olanlar, 10 11 ve 10 , 100 , aşağıdaki gibidir:
190000007777
700000011119
955666663333
47444444441111
66666622222399
280000000033333
1111333333334999
1111333333377779
1199999999900111
3355555666999999
2222233333000099
55555922222222233333
444444440004449999999
3366666633333333377777
3333333333999888883333
4441111113333333333311111
2222222293333333333333999999
999999999339999999977777777777
22222226666666222222222299999999
333333333333333333339944444444444999999999
559999999999933333333333339999999999999999
3333333333333333333111111111111666666666611111
11111111333330000000000000111111111111111111111
777777777770000000000000000000033333339999999999999999999999999
3333333333333333333333333333333333333333333333336666666977777777777777
666666666666666666611111113333337777777777777777777777777777777777777777
3333333333333333333888889999999999999999999999999999999999999999999999999933333333
Bunun neden böyle olması gerektiğine dair basit bir sezgisel tartışma var. Her dijital uzunluk için, beklenen çözüm sayısının en yüksek olacağı bir dizi tekrarlanan set (yani 3 tekrarlanan set veya 4 tekrarlanan set, vb.) Vardır. Geçiş, oran olarak alınan ek olası çözümlerin sayısı, kontrol edilecek ek sayının asal olma olasılığından ağır bastığında gerçekleşir. Kontrol etme olanaklarının üstel doğası ve asal sayı dağılımının logaritmik doğası göz önüne alındığında, bu nispeten hızlı bir şekilde gerçekleşir.
Örneğin, 300 basamaklı bir çözüm bulmak isteseydik, 4 tekrarlı basamağın kontrol edilmesi, 3 setten daha fazla bir çözüm üretme olasılığının daha yüksek olacağını ve 5 setin yine de daha muhtemel olacağını söyledi. Ancak, elimdeki bilgisayar gücü ile, 4 setle 100 basamaktan çok daha büyük bir çözüm bulmak, 5 veya 6 olsun, kapasitemin dışında olacaktır.
9901444133
(9 tanesinin silinmesi) asal (7 x 1414492019
) değildir . Önceki örneğiniz doğruydu.