Bu zorluk, sık kullandığım bir programlama bloğundan esinlenmiştir. Lütfen orijinal yazıya bakınız: Bir Programlama Yapboz
Meydan okuma
Bir işlev tanımlayın f:Q->Q
öyle ki f(f(n)) = -n
tüm sıfırdan farklı tamsayılar için n
ve Q
rasyonel sayılar kümesidir.
ayrıntılar
Ne olursa olsun tercih dil olarak tanımlar mısınız bir fonksiyon veya program f
parametresi olarak kabul tek sayı n
ve getiri veya çıkışı bir numara f(n)
.
Diliniz için hangi mekanizma en doğal olursa olsun girdi sağlanabilir: işlev argümanı, STDIN'den okunan komut satırı argümanı, yığın konumu, ses girişi, çete işaretleri vb.
Çıktı bir fonksiyondan / programdan bir dönüş değeri olmalı veya STDOUT'a yazdırılmalıdır.
Program durumundan veya işlev dışından görülebilen genel bellekten / verilerden faydalanmayan işlevlerin yanıtlarını sınırlandırmak istiyorum f
. Örneğin, bir sayacı bunun dışında tutmak f
kaç kez f
çağrıldığını sayar ve bu sayıya dayanarak sadece bir olumsuzlama yapmak hiç kimse için çok zor veya ilginç değildir. Alınan kararlar f
sadece kendi f
kapsamındaki verilere dayanmalıdır .
Bununla birlikte, bu kısıtlama, bazı yığın yönelimli diller veya bu tür veri veya kapsamları ayırt etmeyen diğer dil türleri için uygun değildir. Lütfen bu zorluğun ruhuna ayak uydurmak için en iyi kararınızı kullanın.
puanlama
Genel kod golf kuralları geçerlidir - puanınız kaynak kodunuzdaki bayt sayısıdır .
Asgari cevap, alanın ve alan adının f
rasyonellerin bir alt kümesi olmasını gerektirir Q
. Etki alanınızı ve etki alanınızı f
tamsayılarla sınırlarsanız Z
, puanınız kaynak kodunuzdaki bayt sayısının% 90'ının tavanıdır .
Mola, tenis terimi
Beraberlik durumunda, aşağıdakiler sırayla kullanılacaktır:
- Kaynak kodunuzda en az sayıda yazdırılabilir boşluk olmayan simge var
- Yanıtın en erken tarihi ve saati
Düzenle
İsteğe bağlı büyüklükteki sayıları desteklemeniz gerekmez. Lütfen kümeleri Z
ve Q
veri tiplerini seçtiğiniz dilde yorumlayınız (sırasıyla tam sayı ve kayan nokta).
Çözümünüz tamamen bir veri tipinin altında yatan yapıya veya bit desenine bağlıysa, lütfen sınırlamalarını ve nasıl kullanıldığını açıklayın.
f:Q->Q
geldiğini açıklayabilir misin ?
f
, Q
(rasyonel sayılar) üyelerini diğer üyelere (muhtemelen aynı) eşleyen bir fonksiyon anlamına gelir Q
. bkz. en.wikipedia.org/wiki/Function_(mathematics)#Notation