Pyth Uygulaması 2


21

Başka bir Pyth alıştırması zamanı. Burada her biri Pyth çözümü olan 8 problem ifadesi sunuyorum. Bu çözümler Pyth acemi tarafından yazılmıştır. Python'un cevaplarından çok daha kısa olduğu için bu çözümler konusunda oldukça mutlu. Ancak sizin göreviniz ona daha iyi göstermek. Eşdeğer fakat daha kısa programlar oluşturun.

Bu Pyth'te golf oynarken kullanılabilecek püf noktaları ve optimizasyonlar için bir meydan okumadır. Pyth golfçüler daha kısa çözümlere yol açan püf noktalarının çoğunu tanıyabilir. Bununla birlikte, bazı problemler nadiren kullanılan bazı alışılmadık yaklaşımları gerektirecektir. Doğada hiç görmediğim bazı püf noktaları. Ancak hiçbir çözüm Pyth'un tasarımcısı (tasarımcıları) tarafından kasıtlı olmayan herhangi bir hata veya garip davranış gerektirmez. Tüm cevaplar , bu soru gönderiminden itibaren en son Pyth taahhüdü ( 2b1562b ) için geçerli olmalıdır . Pyth yorumlayıcısını kullanabilirsiniztest için. Şu anda güncel ve Pyth'te en uygun çözümleri geçersiz kılacak veya daha kısa çözümleri mümkün kılacak büyük değişiklikler beklemiyorum. Çevrimiçi tercüman ayrıca yeni Karakter Referansına sahiptir. Oldukça yeni olduğu için, bir şeylerin yanlış veya eksik olması durumunda eski belgeleri de kullanabilirsiniz (gerekir) .

Hedef: Referans çözümler toplam 81 bayttır. Amacınız bunu mümkün olduğunca yenmektir. En az toplam bayt sayısına sahip 8 sorunu da çözen başvuru kazanır. Tiebreaker teslim tarihidir.

Tabii ki, sadece 8 sorun için çözümler içeren başvurular geçerlidir. Bir (veya daha fazla) belirli bir sorunun puanını iyileştiremiyorsanız referans uygulamasını kullanabilirsiniz.

Çözümleriniz referans çözümlerle aynı çıktıyı yazmalıdır. İsteğe bağlı izleyen bir yeni satır dışında.

Bu bir Pyth uygulaması olduğundan, yalnızca Pyth dilinde yazılmış programlara izin verilir.

Cevap: Lütfen toplam puanınız hariç tüm cevabınızı şımartın. Kendinizinkini göndermeden önce diğer kişilerin cevaplarına bakmamanız amaçlanmıştır. Koyarak spoiler oluşturabilirsiniz>! Her satırın önünde, şöyle:

>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...

Umarım çok zor veya çok önemsiz problemler seçmemişimdir. Çok sayıda katılımcı ve herkesin Pyth ile ilgili yeni bilgiler edinmesini umuyorum. Mutlu golf!

Sorun 1:

Aşağıdaki 9x9 matrisini oluşturun ve yazdırın:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 9]

Referans çözümü ( Link ):

V9m?>dNd0S9 (11 bytes)

Sorun 2:

Tüm rakamları ve tüm harfleri ayrı satırlara yazdır:

0
...
9
a
...
z

Referans çözümü ( Link ):

VTN)VGN (7 bytes)

Sorun 3:

Sözlüksel olarak en küçük palindromu bulun; bu, küçük harf içeren bir giriş dizesinden daha büyük veya eşittir ve giriş dizesinden aynıdır.

a -> a
abc -> aca
adcb -> adda

Referans çözümü ( Link ):

hf&gTzqT_T^Glz (14 bytes)

Problem 4:

Bir sayının [0, giriş numarası) aralığında olup olmadığını kontrol edin. Bu aynı zamanda yüzmek için çalışmalı.

4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True

Referans çözümü ( Link ):

&gQ0<QE (7 bytes)

Referans formatı to be tested value<newline>end value. Bununla birlikte, farklı bir giriş formatı seçebilirsiniz. Önemli olan, sorun bildirimini yerine getirip doğru sonuçları üretmenizdir.

Sorun 5:

"\ D + [a-zA-Z] +" biçiminde bir giriş dizesini ayrıştırın. Sayının, basamak içeren bir dize değil, gerçekten bir sayı olması gerektiğine dikkat edin.

'123Test' -> [123, 'Test']

Referans çözümü ( Link ):

A.ggk\Az,sGH (12 bytes)

Sorun 6:

Bir veya daha fazla virgülle ayrılmış sayıların toplamını hesaplayın. Dizede en az bir sayı olduğunu varsayabilirsiniz.

11,2,,,3,5,,8 -> 29

Referans çözümü ( Link ):

svM:z",+"3 (10 bytes)

Sorun 7:

0 olana kadar girişten pozitif tamsayıları okuyun. Tüm sayıların toplamını yazdırın.

Referans çözümü ( Link ):

WJE=+ZJ)Z (9 bytes)

Sorun 8:

Ana köşegen olanlar (sol üst köşe - sağ alt köşe) dışındaki bir kare matrisin tüm öğelerini toplayın.

Referans çözümü ( Link ):

-ssQs.e@bkQ (11 bytes)

Dile özgü sorular fikrini gerçekten çok beğeniyorum (ve bunu reddettim). Fakat PPCG'de dile özgü soruların kaşlarını çattığını düşündüm.
Luis Mendo,

3
@LuisMendo Ben diline özgü sorguların sadece kaşlarını çattığını düşünüyorum, eğer sorunun arkasındaki nedeni genel olarak CJam, Pyth, ... gibi golf dillerine karşı bir genel olarak beğenmiyorsanız veya OP sadece belirli dilleri anlıyorsa. Bu biraz farklı. Bu soru temel olarak popüler (PPCG) bir dilin daha gizli özelliklerini göstermek için tasarlanmıştır. Bir nevi hile koleksiyonu gibi. Her dile izin vermek mantıklı değil. İşte bu konuda bir Meta-yazı: link
Jakube

6'da, rakamlar tek haneli tamsayılar pozitif mi?
xnor

@xnor Pozitif olduklarını varsayabilirsiniz, ancak birden fazla rakamdan oluşabilir. Test olayını değiştireceğim.
Jakube

1
Bu soruyu konu dışı olarak kapatmak için oy kullanıyorum, çünkü bu, parçalar arasında etkileşimi olmayan çok parçalı bir meydan okumadır
saat

Yanıtlar:


9

59 58 56 bayt

Sorun 1:

j.tmLdS9Z (9 bayt)

Sorun 2:

MTjG (5 bayt) (İlk karakter yeni satırdır)

Sorun 3:

h.f_IZ1z (8 bayt)

Problem 4:

%IQE (4 bayt)

Sorun 5:

,J.vz-zJ (8 bayt)

Sorun 6:

srXz\,d7 (8 bayt)

Sorun 7:

u+GE0 (5 bayt)

Sorun 8:

ss.DR~hZQ (9 bayt)


2

66 bayt

1. 10 bayt: V9+mZN}hN9
2. 6 bayt: jUT)jG
3. 8 bayt: h.f_IZ1z
4. (başvuru uygulaması) 7 bayt: &gQ0<QE
5. 11 bayt: ,sK-rzZG-zK
6. 7 bayt: ssMcz\,
7. 8 bayt: s<.Qx.QZ
8. 9 bayt:ss.eXbkZQ


2

68 67 66 65 bayt

Görev 1

10 bayt: V9m*d>dNS9

Görev 2

5 bayt:, yeni satır \nMTjGnerede\n

Görev 3

9 bayt: h.fqZ_Z1z

Görev 4

5 bayt: qQ%QE

Görev 5

Referans çözümü, 12 bayt: A.ggk\Az,sGH

Görev 6

7 bayt: ssMcz\,

Görev 7

8 bayt: s<.Qx.Q0

Görev 8

9 bayt: ss.DVQUlQ


1

54 bayt

İşte amaçlanan çözümler. Görev 8 dışında tüm çözümler bulundu.

1. sol harita için haritayı kullanan j.tmLdS9Z (9 bayt),
sıfırlayın ve sıfırlayın. 2. \ nMTjG (5 bayt), harita
3 için yeni satırlar kullanın . H.f_IZ1z (8 bayt), .f
4 .% IQE (4 bayt) değişmez operatör 2 parametre ihtiyacı olan bir usecase, bulunan
5. J.vz-Zj bir zincir (8 bayt) .v değerlendirir sadece birinci tablo ve geri kalan göz ardı
6. ssMcz \, ( 7 bayt) s "" = 0
7. u + GE0 (5 bayt)
8 sayıya ulaşıncaya kadar azalır . Ss.DVQUQ (8 bayt) vektörellemeyi kullanarak köşegeni sil


Kahretsin, unutmuşum Uyaptım llistelerinde!
lirtosiast

1
Kendi dilinde isaacg yenmek güzel.
Stan Strum

1

 60 59  57 bayt

1. 9 bayt :j.tmRdS9Z


2. 6 bayt :jbUTjG


3. 8 bayt :h.f_IZ1z


4. 4 bayt :}sEU


5.8 bayt :,K.vz-zK


6.7 bayt :ssMcz\,


7.8 bayt :s<FxB.Q0


8. 11 10 7 bayt : ss.DVQU Önceki sürüm:ss.e+<bk>bh

Partiye oldukça geç kalmama rağmen, bu çözümleri tamamen diğer cevaplardan bağımsız olarak geliştirdiğimi unutmayın .


Güzel girişim. Üçüncü sorun olsa da 8 bayttır.
Jakube

Ve eminim ki, problem 8'in çözümü o zamanlar derlemedi. Ama test etmedim.
Jakube

@ Jakube Ah fark ettiğiniz için teşekkürler!
Bay Xcoder
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.