Kurallar basit:
- İlk n primiler ( n'nin altındaki değil ), yeni satırlarla ayrılmış standart çıktılara basılmalıdır (primiler kod içinde oluşturulmalıdır)
- primerler dahili bir işlev veya bir kütüphane aracılığıyla üretilemez , yani prime = get_nth_prime (n), is_a_prime (number) veya factorlist = list_all_factors (number) gibi dahili veya kütüphane işlevlerinin kullanımı çok yaratıcı olmaz.
Puanlama - Diyelim ki, Puan = f ([koddaki karakter sayısı]), O ( f (n)) algoritmasını, n'in bulduğu primerlerin sayısı olduğu gibi tanımlıyoruz. Örneğin, O (n ^ 2) karmaşıklığına sahip 300 karakter kodunuz varsa , puan 300 ^ 2 = 90000 , O (n * ln (n)) olan 300 karakter için puan 300 * 5.7 = 1711.13 ( tüm günlüklerin basitlik için doğal günlükler olduğunu varsayalım)
Mevcut herhangi bir programlama dilini kullanın, en düşük puan kazanır
Düzenleme: Sorun, çünkü O (f (n)) ne 'n' ile ilgili kafa karışıklığı 'ilk n asal' olarak bulgu gelen ilk 1000000 asal 'olarak değiştirildi olduğunu n bulduğunuz asal sayısı (asal bulma olduğunu Buradaki problem ve bu yüzden problemin karmaşıklığı bulunan prime sayısına bağlıdır.
Not: Karmaşıklık konusundaki bazı kafa karışıklıklarını netleştirmek için, eğer 'n' bulduğunuz primerlerin sayısı ve 'N' bulunan ilk üs ise, n'nin karmaşıklığı n'dir ve N eşdeğer değildir, yani O (f (n))! = O (f (N)) olarak, f (N)! = Sabit * f (n) ve N! = Sabit * n, çünkü en yüksek fonksiyonun doğrusal olmadığını biliyoruz, çünkü 'n' bulduğumuzdan beri Asal karmaşıklık, 'n' cinsinden kolayca anlaşılabilir olmalıdır.
Kibbee işaret ettiği gibi, ziyaret edebilirsiniz Bu siteyi çözümlerinizi doğrulamak için ( burada , eski google dokümanlar listesi)
Lütfen bunları çözümünüze ekleyin -
Programınızın ne kadar karmaşıklığı varsa (önemsiz değilse temel analizi de ekleyin)
kodun karakter uzunluğu
final hesaplanan puan
Bu benim ilk CodeGolf Sorum, bu yüzden yukarıdaki kurallarda bir hata veya boşluk varsa lütfen belirtin.
1[\p:i.78498
bunun cevabıydı 1[\p:i.1000000
. J'nin içsel asal algoritmasının O (n ^ 2) olduğunu
n
asal veya maksimum asal sayısı ve aralıktaki sayıların eklenmesi herkesin gerçeği göz ardı 0..n
olduğunu O(logn)
ve çarpma ve bölme daha pahalıdır. Doğru karmaşıklıkları ile birlikte bazı örnek algoritmalar vermenizi öneririm.
O-tilde(k^6)
. Bu, çalışma süresi daha iyi olduğunu iddia eden herkesin O-tilde(n ln n (ln(n ln n))^6)
sorunun bir bölümünü yanlış anladığını ima ediyor ; ve O-tilde
puanlamada karmaşıklıkların nasıl ele alınması gerektiği sorusu .