Flash depolamanın güvenilirliğinden bıkmış, tüm programlarınızı eski güzel 1.440 KiB disketlerden birinde saklamaya karar verdiniz. Ancak, 3.000 program bile kopyalanmadığında, disk doluydu. Bu nasıl mümkün olabilir? Sizin gibi kod golf sanatında usta, programlarınızın çoğu 100 bayt bile değil, o yüzden bol miktarda yer kalmalı ...
Süper Kullanıcı hakkında sorduktan sonra, dosya sisteminin küme büyüklüğü , FAT12 tasarımcılarının disketinizin önemli bir bölümünü terk eden ve gerçekte ihtiyaç duyduğunuzdan daha fazla satın almaya zorlayan kötü bir arsası tarafından hatalı olduğunuzu keşfedersiniz .
Daha fazla disket satın alıyor? Asla! Birden fazla programı tek bir dosyaya kaydetmemiz durumunda küme boyutu daha az sorun yaratacaktır, çünkü aynı derleyici / yorumlayıcılar aynı kaynak kod için farklı davranacaktır.
Görev
Tek bir kümeye uyan (512 bayt veya daha az) bir poliglot yazın ve aşağıdaki görevlerin mümkün olan en fazlasını çözer.
Tüm girişi okuyun ve yazdırın.
Merhaba, Dünyayı Yazdır ! .
Giriş olarak bir satırı / argümanı ( isim ) okuyun ve Happy Birthday, [name] 'i yazdırın ! .
Tüm girdileri okuyun ve yazdırın Sekmeleri seviyorum! eğer bir veya daha fazla tablo tablosu içeriyorsa (0x09) ve boşluklardan nefret ederim! eğer değilse.
İki satır / argüman oku ve ikincisi birinci olanın alt dizesiyse, ve eğer değilse sahte bir değer ise, bir gerçek değeri yaz.
Bir çizgi / argüman oku ve eğer karakterleri kesinlikle artan bir düzendeyse, ve eğer değilse sahte bir değerse, gerçeğe uygun bir değer yaz.
Bir çizgi / argüman ve bir karakter okuyun ve bu karakterin tüm oluşumlarının dizinlerini yazdırın.
Bir çizgi / argüman oku ve en fazla tekrarlanan karakterlerden birini yazdır.
0 ile 255 arasındaki iki tam sayıyı okuyun ve toplamını yazdırın.
0 ile 255 arasında tek bir tamsayı okuyun ve bölümünün bölüm ve kalanını 7 ile yazdırın .
1 ile 255 arasındaki tek bir tamsayıyı okuyun ve eğer birleşik sayı (ne 1 ne de asal) değilse, gerçek olmayan bir değer ve eğer değilse sahte bir değer yazın.
1 ile 255 arasında tek bir tamsayı okuyun ve eğer 2 değerinde bir güçlüyse ve eğer değilse sahte bir değer ise bir gerçeğe uygun değer yazdırın.
0 ile 255 arasındaki iki tam sayıyı okuyun ve daha büyük olanı yazdırın.
0 ile 255 arasındaki ondalık bir tamsayıyı oku onaltılı gösterimini yazdırır.
0 ile 255 arasında tek bir tamsayı okuyun ve Hamming ağırlığını yazdırın (1 bit sayısı).
Tek bir tamsayı Oku n arasındaki 1 ve 13 ve baskı F n , n inci Fibonacci sayı .
Örneğin, giriş için
13
yazdırın233
.
Bir giriş satırını / argümanını oku ve çerçevele
Örneğin, giriş için şunu
Programming Puzzles & Code Golf
yazdırın:+---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+
Dikdörtgen bir karakter bloğu okuyun ve saat yönünde çeyrek tur çevirin.
Örneğin, giriş için
tye xll epb tma id sa s e i r hsn Tiu
bunu yazdır:
This text is simply unreadable
1 ile 40 arasında bir tam sayı okuyun ve bu kenar uzunluğundaki bir elması yazdırın.
Örneğin, giriş için şunu
3
yazdırın:/\ / \ / \ \ / \ / \/
Bunu yazdır:
....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ ....@@@@....@@@@....@@@@....@@@@ @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@.... @@@@....@@@@....@@@@....@@@@....
puanlama
Tek bir 512 baytlık kümeye uyan tek bir dosyada en fazla sayıda programın birleştirilmesini sağlayan yanıt kazanır. Bağlar bayt sayısından kopar (alt kısım daha iyidir).
Ek kurallar
Puanınız için talep ettiğiniz her görev için, aynı dosya (bayt başına bayt), bu belirli görevi çözen tam bir program - seçtiğiniz bir dilde - oluşturmalıdır.
Her görev farklı bir dilde çözülmelidir.
Diller, aynı dilin farklı versiyonları değilse farklı sayılır. Örneğin, yalnızca bir JavaScript, bir Python ve bir TI-BASIC var, ancak C, C ++, Octave ve MATLAB dört farklı dilde.
Her görev için seçilen dil, programlama dilindeki genel tanımımızı yerine getirmelidir .
Ayrıca, dil 9 Eylül 2015'ten önce yayınlanmış ve uygulanmış olmalıdır.
Derleyiciniz / tercümanınız beklenen davranışı sağlamak için standart olmayan bayraklar gerektirmeyebilir.
Bu kuralın istisnaları, belirli bir dili belirtmek, programı (tek bir) dosyadan okumak veya bir afişi bastırmak için gerekli bayrakları içerir.
Her görevin girişi, yazdırılabilir ASCII karakterlerinden (0x20 - 0x7E) ve satır beslemesinden (0x0A) oluşacak ve uzunluğu 255 baytı geçmeyecektir .
Görevde aksi belirtilmedikçe tüm tamsayılar ondalık ya da tekdüzen olarak okunabilir.
Geçersiz giriş için davranış tanımsız.
Girdileri STDIN'den (veya en yakın alternatifinden) veya komut satırı argümanlarından okuyabilirsiniz.
Bir görevin iki girdi okumasını gerektiriyorsa, bunları - herhangi bir sırayla - seçtiğiniz bir bayt sınırlayıcıyla ayırarak, ayrı komut satırı argümanları veya biri STDIN'den diğeri komut satırı argümanı olarak okuyabilirsiniz.
Giriş parçalarından biri bir çizgi ise, mümkün olan tek sınırlayıcı bir satır beslemesidir.
Çıktıyı STDOUT'a (veya en yakın alternatife) yazdırın. STDERR'ye tüm çıktılar göz ardı edilir.
Her görev için standart kod golf kuralları uygulanır.
Özellikle, bu zorluğa açıkça izin verilen çıktının kodlanması dışında varsayılan olarak yasaklanan Loopholes'ları içerir .
2>/dev/null
stdout'a doğru çıktıyı aldığımızda , sorun değil mi? Sadece emin olmak için.