Tüm matematikte, her zaman sağduyunun ötesine geçen birkaç teorem olacaktır. Bunlardan biri, farklı boyutlarda sonsuzluğun olmasıdır. Bir başka ilginç gerçek, farklı büyüklükte görünen birçok sonsuzluğun aslında aynı boyutta olduğu fikri. Rasyonel sayılar kadar tamsayılar kadar eşit sayılar vardır.
Bu sorunun genel konsepti, sonsuzluğun tuhaf gerçekliğiyle yüzleşmektir. Bu zorlukta, programınız aşağıdakileri içeren bir liste çıkarır:
- Herhangi bir zamanda, her zaman tam sayıda giriş yapın
- Sonunda (yeterince uzun süre çalıştırılmak üzere bırakılırsa) herhangi bir (sıfır olmayan) rasyonel sayıyı tam olarak tüm listede bir kez içerir
- Sınırsız sayıda boş yuva içeriyor (listedeki gereksiz yere 0'a ayarlanmış girişler)
- % 100 sınırına yaklaşan boş yuva oranına sahip olmak
- Her pozitif tamsayı N için, ardışık N boş yuvaya sahip sonsuz sayıda yere sahip olun
Meydan okuma
Zorluğunuz, aşağıdaki kurallarla özel bir liste çıkaracak olan mümkün olan en kısa programı yazmaktır:
- Bir kare numarası olmayan bir dizine sahip tüm girdiler sıfır olarak ayarlanmalıdır. Böylece, ilk giriş sıfırdan, ikinci ve üçüncü sıfırdan, dördüncü sıfırdan vb. Olacaktır.
- Tüm rasyonel sayılar, basitleştirilmiş yanlış bir kesir (4/5 veya 144/13 gibi) şeklinde olacaktır. İstisna, sadece sıfır olacaktır
0
. - Programınız yeterince uzun ve yeterli belleğe sahipse, tüm (pozitif ve negatif) rasyonel sayılar sonunda listede görünmelidir. Herhangi bir özel rasyonel sayı için, gereken süre keyfi olarak büyük, fakat her zaman sınırlı olan bir süre olabilir.
- Sonsuz bir süre için çalıştırılırsa, sıfır olmayan rasyonel sayı hiçbir zaman iki kez görünmemelidir.
Kural 3, sınırsız sayıda farklı olası yasal çıktı olduğu için bazı değişikliklere izin vermektedir.
Çıktı bir çizgi akışı olacaktır. Her satır 5: 2/3
, ilk sayının giriş numarası olduğu genel formda olacak , ardından rasyonel sayı olacaktır. 1: 0
Bunun her zaman ilk çıktı satırı olacağını unutmayın .
Çıktı snippet'i örneği:
1: 1/1
2: 0
3: 0
4: 2/1
5: 0
6: 0
7: 0
8: 0
9: -2/1
10: 0
etc...
Kurallar, Düzenlemeler ve Notlar
Bu kod golf. Standart kod golf kuralları geçerlidir. Ayrıca, çıktıda izin verilen varyasyon nedeniyle, en azından listenizin olası tüm rasyonel sayıları tam olarak bir kez içereceğine ve çözümünüzün doğru olduğuna neden inandığınızı göstermeniz gerekir.
DÜZENLEME: Asal sayılar meydan okumadan uzaklaştığından, kare sayılara değiştiriyorum. Bu aynı amaca ulaşır ve çözümleri kısaltır.
1: 0
Bunun her zaman ilk çıktı satırı olacağını unutmayın . - Bu, örneğinizle çelişiyor ve benim için de bir anlam ifade etmiyor.