basit bir c programıyla bile öğrenilebilir!

kratertepesi@msi:~/masaüstü/programlar$ ./program
100 milyon sayı içinde 10030385 asal sayı vardır.
işlemci döngüsü: 4772581176
hesaplama süresi: 1.0846775400 saniye
1 saniyenin 10,000'de kaçı: 10846.7754000000


kod:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <x86intrin.h> // rdtsc için gerekli

#define lımıt 180000000 // 1 milyar sınırı
#define cpu_frequency 4.4 // ghz cinsinden işlemci frekansı (örneğin 3.0 ghz)

int main() {
unsigned long long i, j, count = 0;
bool *is_prime = malloc((lımıt + 1) * sizeof(bool));
if (is_prime == null) {
fprintf(stderr, "bellek tahsis edilemedi.\n");
return 1;
}

// zaman ölçüm başlangıcı
unsigned long long start = __rdtsc();

// bütün sayıları asal varsayıyoruz
for (i = 0; i <= lımıt; i++) {
is_prime[i] = true;
}

// 0 ve 1 asal değildir
is_prime[0] = is_prime[1] = false;

// eratosthenes eleği algoritması
for (i = 2; i * i <= lımıt; i++) {
if (is_prime[i]) {
for (j = i * i; j <= lımıt; j += i) {
is_prime[j] = false;
}
}
}

// asal sayıları sayıyoruz
for (i = 2; i <= lımıt; i++) {
if (is_prime[i]) {
count++;
}
}

// zaman ölçüm bitişi
unsigned long long end = __rdtsc();

// döngü farkını hesapla
unsigned long long cycles = end - start;

// döngü süresi saniye olarak
double time_seconds = cycles / (cpu_frequency * 1e9); // ghz'den hz'e dönüşüm

// sonuçları yazdır
printf("100 milyon sayı içinde %llu asal sayı vardır.\n", count);
printf("işlemci döngüsü: %llu\n", cycles);
printf("hesaplama süresi: %.10f saniye\n", time_seconds);
printf("1 saniyenin 10,000'de kaçı: %.10f\n", time_seconds * 10000);

// belleği serbest bırak
free(is_prime);

return 0;
}
devamını gör...

bu başlığa tanım girmek için olabilirsiniz.

zaten üye iseniz giriş yapabilirsiniz.

"işlemcinin saniye başına hesapladığı komut sayısı" ile benzer başlıklar

normal sözlük'ü kullanarak 3. parti dahil tarayıcı çerezlerinin kullanımına izin vermektesiniz. Daha detaylı bilgi için çerez ve gizlilik politikamıza bakabilirsiniz.

online yazar listesini görmek için lütfen giriş yapın.
zaman tüneli köftehor rehberi portakal normal radyo kütüphane kulüpler renk modu online yazarlar puan tablosu yönetim kadrosu istatistikler iletişim