Mandoline quine


25

Diğer her karakterin kaldırılabileceği bir satır yaz ... ... hala geçerli bir satır. Birinci veya ikinci karakterdeki karakterleri kaldırmaya başlamak isteyip istemediğinizi belirleyebilirsiniz.

Puanlama kriterleri (toplam yüzde için ikramiye / ceza yüzdelerini bir araya getirin):

  • Cevaplar en az 4 karakter uzunluğunda olmalı
  • Program, kaynağında en az bir alfabetik karakter içermelidir, bu nedenle örneğin 12345!@#$%^&*()diskalifiye edilir.
  • Kullanılan dil Turing-tamamlanmamışsa% + 750 (Sana bakıyorum, HTML!)
  • % -15, çözüm kaynağını herhangi bir yerden herhangi bir biçimde okumadıysa
  • % -20, aynı zamanda sadece her 5'inci karakteri tutabilir ve yine de küçük

Skor, ilk programdaki karakter sayısı ile ölçülür.

Örnek (gerçek programlar değil):

Eğer 123456789abcdefve 13579bdfher iki quines ise, skor, Ek 15. olduğunu 159dda quine o zaman son puan 12'dir.

Bu kod golf, yani en düşük puan kazanır.


2
@ hosch250 Orijinal program bir parça olmaz, çünkü o boşlukları basmazdı. Aynı gereksiz yorumlar için de geçerli.
Jwosty

1
Evet, daha önce hiç program yapmadım ve C ++ 'da kaynak kodunu okumadan nasıl yapacağımı bilemedim. Onları daha önce C ++ 'da gördüm!
Hosch250

1
Siz de belirtin: "Her 4 karakteri de silebilir ve yine de bir kuyruk oluşturabiliyorsanız% -20" Ancak teknik olarak bu, örneğinizde olan şey değil. İkinci kez yapabilir misin demek istiyorsun?
mmumboss

4
Bonuslar ek mi yoksa çarpıcı mı? Yani, programım 10 karakter uzunluğundaysa ve% -15 bonus ve -20% bonus için uygunsa, puanı 10 * (1 - 0.15 - 0.2) = 6.5 veya 10 * (1 - 0.15) * olur (1 - 0.2) = 6.8 İkincisini varsaydım, ancak açık bir açıklama güzel olurdu.
Ilmari Karonen

1
Bu bir Mandoline quine olmaz mıydı, Giyotin mi? Giyotinler temiz, genel olarak ölümcül, kesik bir parça yapar ve kafa yuvarlanır. Mandolinler eşit aralıklarla yerleştirilmiş dilimlerle hazırlanır. :)
Jonathan Van Matre

Yanıtlar:


24

PHP, 4 karakter -% 15 -% 20 = 2.72 2.6 puan

ABCD

Evet, PHP Turing-eksiksiz bir dildir. Kimse gerçek programlama özelliklerini kullanmam gerektiğini söylemedi . ;-)

Düzenleme: Bonusların çarpımsal değil, katkı maddesi olduğu açıklığına göre puan değiştirildi.


Bu muhtemelen ASP'de çalışır.
Ismael Miguel

2
@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ Pes ediyorum. : P
Jwosty

17
Aslında, PHP'nin gerçek programlama özelliklerinin kullanılması önerilmemektedir.
Rhymoid

1
Bu uygun bir sırt değil. Yine de iyi bir cevap olsa da
MilkyWay90

14

TI BASIC 4 - 35% = 2,6

Onları yanlış anlayabilirim ama% -15 ve% -20 bonusları için de uygun olduğumu düşünüyorum.

Programı yazabilirim:

123i

Bu 123i, elbette hayali birimin olduğu yerde ortaya çıkacak . 1. ve 3. karakterleri kaldırdığınızda geriye kalan tek şey 2içıktı olan2i


Tam olarak değil ... '12i' '12i', '2' ise 1.95 minimum puan için '2' çıktısı alacak.
intx13

Aslında, '2i' 1.3, boş program bir quine sayılırsa, 'i' 0.65.
intx13

4
@ intx13: " Cevaplar en az 4 karakter uzunluğunda olmalı. "
Ilmari Karonen

Ah, onu özledim!
intx13

Beni yendi;)
Timtech

13

Python - 95

Büyük zorluk. Bunun oldukça zekice ve aslında yasal bir çözüm olduğunu düşünmüştüm!

00;"#";print(open(__file__).read())
0#;XpXrXiXnXtX(XoXpXeXnX(X_X_XfXiXlXeX_X_X)X.XrXeXaXdX(X)X)

1
Güzel! Bunun teknik quine yaparken newline'ı silmekten sonra olduğu gibi çalışmadığını unutmayın. biraz IOW tweaking gerektirir
Claudiu

3
@ Claudiu Pekala, OP'nin newline'ı bir karakter olarak görüp görmediğine bağlı. Öyleyse, her satırın arasına yeni bir satır ekleyebilirsiniz. 96 karakter
qwr

Tabii ki yeni bir karakter bir karakterdir ...
mbomb007

11

Golf Betiği, 5 puan

{hai}

yürütüldüğünde, (varolmayan) işlevini çalıştıracak bir işlevdir hai. Bununla birlikte, yürütülmez ancak program sona erdiğinde - dış parantezler dahil - yazdırılır. Birbirlerine karakter verilerini kaldırmak:

{a}

Lame, biliyorum :-)


Her iki bonus için de hak ettiğinizi düşünüyorum: programınız kendi kaynak kodunu okumuyor ve {}bir de sınav.
Ilmari Karonen

@IlmariKaronen kendi kaynak kodunu okumanın neyin önemli olduğunu söylemek zordur. Değişmeyen işlevler sayılır mı? Dizeleri değerlendirmek sayılıyor mu? Diğer ikramiye gelince - belki de sadece kötü ifadeli, ama ben (gerçi sadece bir kelepçeyle beni bırakmayan "her beşinci karakterini tutmak" olarak "her dört karakterleri kaldırın" okumak {ab0}eğer nitelendirir 0tutulur biri olabilir)
John Dvorak

Gerçekten de kötü ifadeler, ancak örnek, "her dördüncü karakteri sakla" anlamına geliyor. Her neyse, not ettiğiniz gibi, {ab0}her iki şekilde de nitelendiriyor.
Ilmari Karonen

Aynı {hi}zamanda çalışır gibi görünüyor , daha kısa olacak (4 karakter) ve ayrıca tüm bonuslara hak kazanacak. (Senaryonun bir sebepten ötürü {ideğerlendirildiğini {i
görüyoruz


8

HQ9 + - 4 * 7,5 * 0,8 = 24 puan

Q+++

Her ikinci karakterde hala bir kuyruk:

Q+

... ve her beşte:

Q

Üzgünüm, karşı koyamadım. :)


7

HTML / Markdown, 4 * 7.5 = 30

HHHH

Bunun topal olduğunu itiraf ediyorum, ancak sorudaki hiçbir kurala aykırı değil. Bunun dışında, HTML / Markdown, gerçek bir programlama dili olarak kabul edilmeyebilir.


Sanırım, bölünemeyecek olan programların geçerli olmadığını belirtmedim.
Mücadele

@Jwosty: Sonra HTML'deki "HHHH" kazanacaktı. Not 5555alfabetik bir karaktere sahip olmadığından işe yaramıyor
Claudiu

Alfabetik bir karaktere ihtiyacınız var.
qwr

@ qwr: GolfScript'e bakarken bunu unutma. Kaldırıldı.
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

Hmm ... Bunun geçerli olduğunu varsayıyorum: P
Jwosty

5

! / Bin / sh

Qwr'nin çözümünü çok sevdim , utanmadan POSIX kabuğu için bir bağlantı noktası yaptım. Lütfen boşluk içeren bir dosya adına kaydetmeyin.

: '#';cat $0

#c a t   $ 0

1 numaralı karakterden kaldırmaya başla ve yeni satırları karakter olarak say. İkinci quine elbette:

 #;a 0
cat $0

Lütfen bunun yerine qwr'nin cevabını yükseltin!


3

Bash, 23

Newline bir karakterdir!

Bazı karışık yorumlar çalışır, böylece ilk karakterden başlayarak her karakter silindiğinde yorum kod haline gelir ve kod yorum haline gelir:

#cRaRtR R$R0R R#
cat $0

Diğer her karakterden sonra ( yeni satır dahil ) kaldırılır:

cat $0 #ct$

Olsa da kendi kaynağını okursa, bir kuyruk değil.
daniero

@daniero "çözüm herhangi bir biçimde herhangi bir yerden kaynağını okumuyor eğer -15%" sen ima edilmektedir programın kaynağını okumaya izin (ama bonus alamadım)

@ daniero oh wikipedia baktım sanırım hile yapıyor ... ama kod-golf

Ben her zaman kedileri büyütürüm!
Antonio Ragagnin,

2

Brainf ** k,% 37 - 15 = 31.45

Taşınabilir Brainfuck Tercümanını Kötüye Kullanma

+A[B-C<D+E]F-GÿH<I<J<K<L<M<N<O[P.Q>R]

İkinci karakterden kaldırmaya başla.


Bunu çalıştırdığımda B-C<D+E]F-GÿH<I<J<K<L<M<N<O[P.Q>R]çıktı olarak alıyorum, bu yüzden bazı karakterlerin eksikliği.
Sylwester

Brainfuck mı, yoksa sadece bir tercüman üzerinde çalışan belirli bir Brainfuck lehçesi mi?
kullanıcı253751

@ immibis Düzenlidir (bu büyük harfler boşluk veya sembol veya herhangi bir şey olabilir). Ancak, cevaptan bağlanan taşınabilir tercümanı kullanmanız gerekir.
Timtech

1
İlk parça finds bulana kadar sola gider ve bağlantılı tercüman, veri bandının başlamasından önce 5000 byte kodunu saklar. Bu pek taşınabilir Brainfuck.
user253751

0

HQ9 + T, - 4 * 0,8 = 3,2 puan

qqqq

Geçerli bir quine (ish) ve her saniye ve beşinci char için bir quine. Karşı koyamadım. . . .

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.