C için büyük veri tipi kütüphaneleri

Başlatan tlg, 11 Kasım 2015 - 22:32:37

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

tlg

Şöyle bir projem var,
İlk 1.000.000 ikiz asal sayıyı bulan program.

Daha başlamadım, öncelikle kütüphane bakmaya başladım. Önerilerinize açığım.

freeman

Kütüphaneden ziyade güçlü işlemci/ram kombinasyonu gerekli gibi.
https://gmplib.org/
Good morning and welcome to the Black Mesa Transit System. This automated train is provided for the security and convenience of the Black Mesa Research Facility personnel.

Reverser


XFCE ROCKS !
Powered by Thunar & XFWM4



-DıLgEş-

1.000.000 ikiz sayı için güçlü bir algoritma gerekli yoksa 1 saat açık kalsa da bitmez.... Tabii güçlü bir bilgisayar...
Aşkın; gözü kör, kulağı sağır, dili tutuk, aklı kıttır..! Hayır yani bu halde nasıl herkesi madara ediyor onu çözemedim..

natgho

C için büyük veri tipi diye bir kütüphane yok bildiğim kadarıyla, veriyi parça parça saklamak diye mevzu var, mesela 1.000.000 ise 500.000 + 500.000 ya da basamakları 3 erli olarak saklayıp "1" "000" "000" gibi saklamak mümkün.
Hayır ben Windows Düşmanı Değilim,Bu Yüzden Linux Kullanmıyorum, Ben Sadece Benim Donanımımda At Koşturacaksa Bir Yazılım, her Adımını Bilme Sorumluluğunu Hisseden Bir Teknologtan Fazlası olmadığım İçin Linux Kullanıcısıyım.

tlg

İşin duayeni sayılmam ilk başta kütüphane diye düşündüm şimdi üstteki arkadaşın dediği gibi algoritmalara bakıyorum.
Bilgisayarım normal bir dizüstü algoritma daha mantıklı gözüküyor.

Elime bilgi geçtikçe buradan da paylaşacağım.

oasln

Yalnız soru sanırım, 1 milyonuncu ikiz asal çifti bulan program yazmak. Malum çift asallar iki sayıdan oluşuyor, ilk çift 3 ve 5 gibi. Ben de deneyecegim bu problem hayli ilgi çekici.
--

tlg

1 milyonuncu değil, 1 milyona kadar bütün ikiz asal sayılar :) Bir hayli uğraştırabilir :)
İlk iletimde belirtmeyi unutmuşum bunu 3 saniyede halletmem lazım :D

iskenderoguz

C'de büyük sayıları yazdırmak için long long yada long long int 'i kullanabilirsin

oasln

Öyleyse bu soru o kadar da zor değilmiş. 1 milyondan küçük asal sayılardan son ikiz asal sayı cifti:


$ time ./a.out | tail -n1
8169. ikiz asal cifti: (999959 999961) (78495. ve 78496. asal sayilar)
./a.out  0.16s user 0.00s system 99% cpu 0.161 total


Ben yanlis anladigimdan cok farkli yerlere goturdum:

1000000. ikiz asal cifti: (252427601 252427603) (13804822. ve 13804823. asal sayilar)

long kullanmana bile gerek yok, int isini gorecektir. Ipucu: Sieve of Eratosthenes
--

tlg

#10
Güzel bir algoritmaya benziyor. Bi başlayayım yazma bakalım

Düzenleme1: Algoritmayı kaba taslak yazdım ama büyük sayılar için olmadı nedense :)

Düzenleme2: İlk 1 milyon asal sayıyı yazdırdım int ile. Ki bu bile 5-6 saniye oldu.
Benim 1 milyon tane ikiz asal sayı çifti bulacağımı da göz önüne alırsam yaklaşık 1.5 milyon civarı asal sayı bulup bunları ikişerli gruplandırmam lazım.