Aturannya sederhana:
- Pertama n bilangan prima (bukan bilangan prima di bawah n ), harus dicetak ke output standar dipisahkan oleh baris baru (bilangan prima harus dihasilkan dalam kode)
- bilangan prima tidak dapat dihasilkan oleh fungsi inbuilt atau melalui perpustakaan , yaitu penggunaan fungsi inbuilt atau perpustakaan seperti, prime = get_nth_prime (n), is_a_prime (angka), atau daftar faktor = list_all_factors (angka) tidak akan sangat kreatif.
Penilaian - Katakanlah, kita mendefinisikan Skor = f ([jumlah karakter dalam kode]), O ( f (n)) menjadi kompleksitas algoritme Anda di mana n adalah jumlah bilangan prima yang ditemukannya. Jadi misalnya, jika Anda memiliki 300 kode char dengan kompleksitas O (n ^ 2), skor adalah 300 ^ 2 = 90000 , untuk 300 karakter dengan O (n * ln (n)), skor menjadi 300 * 5.7 = 1711.13 ( mari kita anggap semua log menjadi log natural untuk kesederhanaan)
Gunakan bahasa pemrograman yang ada, kemenangan skor terendah
Sunting: Masalah telah diubah dari menemukan 'prima pertama 1000000' menjadi 'n primes pertama' karena kebingungan tentang apa 'n' di O (f (n)) adalah, n adalah jumlah bilangan prima yang Anda temukan (menemukan bilangan prima adalah masalah di sini dan kompleksitas masalah tergantung pada jumlah bilangan prima yang ditemukan)
Catatan: untuk memperjelas beberapa kebingungan tentang kompleksitas, jika 'n' adalah jumlah bilangan prima yang Anda temukan dan 'N' adalah bilangan prima ke-n, kompleksitas dalam n adalah dan N tidak setara yaitu O (f (n))! = O (f (N)) sebagai, f (N)! = Konstan * f (n) dan N! = Konstan * n, karena kita tahu bahwa fungsi utama ke-n tidak linier, saya pikir karena kami menemukan 'n' Kompleksitas bilangan prima harus mudah diungkapkan dalam hal 'n'.
Seperti yang ditunjukkan oleh Kibbee, Anda dapat mengunjungi situs ini untuk memverifikasi solusi Anda (di sini , adalah daftar google docs lama)
Harap Sertakan ini dalam solusi Anda -
kompleksitas apa yang dimiliki program Anda (termasuk analisis dasar jika tidak sepele)
panjang kode karakter
skor akhir yang dihitung
Ini adalah Pertanyaan CodeGolf pertama saya, jadi, jika ada kesalahan atau celah dalam aturan di atas, mohon tunjukkan.
1[\p:i.78498
jawaban saya untuk ini 1[\p:i.1000000
. Bahkan dengan asumsi bahwa algoritma prime internal J adalah O (n ^ 2) skor saya masih hanya 196.
n
jumlah bilangan prima atau bilangan prima maksimum, dan semua orang mengabaikan fakta bahwa penambahan bilangan dalam kisaran 0..n
itu O(logn)
, dan penggandaan dan pembagian bahkan lebih mahal. Saya menyarankan Anda memberikan beberapa contoh algoritma beserta kompleksitasnya yang benar.
O-tilde(k^6)
. Ini mengarah pada implikasi bahwa siapa pun yang mengklaim waktu berjalan lebih baik daripada O-tilde(n ln n (ln(n ln n))^6)
salah paham beberapa bagian dari masalah; dan untuk pertanyaan bagaimana O-tilde
kompleksitas harus ditangani dalam penilaian.