พิณ Quine


25

เขียนควินิน ... ซึ่งทุกตัวละครอื่น ๆ สามารถลบได้ คุณสามารถระบุได้ว่าจะเริ่มต้นลบอักขระที่อักขระตัวแรกหรือตัวที่สอง

เกณฑ์การให้คะแนน (เพิ่มโบนัส / เปอร์เซ็นต์เปตเซ็นต์รวมกันเป็นเปอร์เซ็นต์ทั้งหมด)

  • คำตอบจะต้องมีความยาวอย่างน้อย 4 ตัวอักษร
  • โปรแกรมจะต้องมีตัวอักษรอย่างน้อยหนึ่งตัวในแหล่งที่มาของมันตัวอย่างเช่น12345!@#$%^&*()จะถูกตัดสิทธิ์
  • + 750% ถ้าภาษาที่ใช้ไม่สมบูรณ์ทัวริง (ฉันกำลังมองหาคุณ, HTML!)
  • -15% ถ้าการแก้ปัญหาไม่ได้อ่านแหล่งที่มาจากที่ใดก็ได้ในรูปแบบใด ๆ
  • -20% ถ้าคุณสามารถเก็บเฉพาะอักขระที่ 5 ทุกครั้งและยังคงรูปแบบ quine

คะแนนวัดจากจำนวนตัวอักษรในโปรแกรมแรก

ตัวอย่าง (ไม่ใช่โปรแกรมจริง):

หาก123456789abcdefและ13579bdfเป็นทั้งควินสุมคะแนนคือ 15 นอกจากนี้หาก159dเป็นควินก็จะเป็นคะแนนสุดท้ายคือ 12

นี่คือรหัส - กอล์ฟดังนั้นคะแนนต่ำสุดจึงชนะ


2
@ hosch250 โปรแกรมต้นฉบับคงไม่เป็นเรื่องแปลกเพราะจะไม่พิมพ์ whitespaces เหล่านั้น กันไปสำหรับความคิดเห็นที่ไม่จำเป็น
Jwosty

1
ใช่ฉันไม่เคยเขียนโปรแกรมควินินมาก่อนและไม่รู้ว่าจะทำอย่างไรโดยไม่อ่านซอร์สโค้ดใน C ++ ฉันเคยเห็นพวกเขาใน C ++ มาก่อน!
Hosch250

1
คุณระบุ: "-20% หากคุณสามารถลบอักขระทุก 4 ตัวและยังคงเป็นควินิน" แต่ในทางเทคนิคนี่ไม่ใช่สิ่งที่เกิดขึ้นในตัวอย่างของคุณ คุณหมายความว่าคุณสามารถทำได้เป็นครั้งที่สอง?
mmumboss

4
โบนัสเพิ่มหรือเพิ่มทวีคูณหรือไม่? นั่นคือถ้าโปรแกรมของฉันยาว 10 ตัวอักษรและมีคุณสมบัติทั้ง -15% โบนัสและ -20% โบนัสคะแนนของมันจะเป็น 10 * (1 - 0.15 - 0.2) = 6.5 หรือ 10 * (1 - 0.15) * (1 - 0.2) = 6.8? ฉันสันนิษฐานว่าหลัง แต่คำชี้แจงที่ชัดเจนจะดี
Ilmari Karonen

1
นี่จะไม่ใช่ Mandoline quine ไม่ใช่ Guillotine หรือ กิโยตินทำให้สิ่งนั้นสะอาดหมดจดโดยทั่วไปมีบาดแผลถูกตัดและศีรษะก็ม้วนไป แมนโดลีนทำกับชิ้นส่วนที่เว้นระยะเท่ากัน :)
Jonathan Van Matre

คำตอบ:


24

PHP, 4 ตัวอักษร - 15% - 20% = 2.72 2.6 คะแนน

ABCD

ใช่ PHP เป็นภาษาทัวริงที่สมบูรณ์ ไม่มีใครพูดว่าฉันต้องใช้ฟีเจอร์การเขียนโปรแกรมที่แท้จริง ;-)

แก้ไข:เปลี่ยนคะแนนตามการชี้แจงว่าโบนัสเป็นสารเติมแต่งไม่ใช่การคูณ


อาจใช้งานได้ใน ASP
Ismael Miguel

2
@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳ ฉันยอมแพ้ : P
Jwosty

17
ที่จริงแล้วการใช้งานฟีเจอร์การเขียนโปรแกรมจริงของ PHP นั้นไม่สนับสนุน
Rhymoid

1
นี่ไม่ใช่ quine ที่เหมาะสม ยังคงเป็นคำตอบที่ดีแม้ว่า
MilkyWay90

14

TI BASIC 4 - 35% = 2.6

ฉันอาจเข้าใจผิด แต่ฉันคิดว่าฉันมีสิทธิ์ได้รับ -15% และ -20% bonusses ซึ่งหมายความว่าฉันมีคะแนนต่ำสุดที่เป็นไปได้

ฉันสามารถเขียนโปรแกรม:

123i

ซึ่งจะส่งออกใน123iกรณีที่ฉันเป็นหน่วยจินตภาพ เมื่อคุณลบอักขระที่ 1 และตัวที่ 3 สิ่งที่เหลืออยู่จะเป็น2iผลลัพธ์2i


ไม่มาก ... '12i' จะแสดงผล '12i' และ '2' จะส่งออก '2' สำหรับคะแนนขั้นต่ำ 1.95
intx13

ที่จริงแล้ว '2i' ได้คะแนน 1.3 และหากโปรแกรมเปล่าถูกพิจารณาว่าเป็น quine 'i' จะได้คะแนน 0.65
intx13

4
@ intx13: " คำตอบจะต้องมีความยาวอย่างน้อย 4 ตัวอักษร "
Ilmari Karonen

อาฉันคิดถึงเรื่องนั้น!
intx13

เอาชนะฉันได้เลย)
Timtech

13

Python - 95

ความท้าทายที่ยิ่งใหญ่ ฉันคิดว่ามันค่อนข้างฉลาดและเป็นทางออกที่ถูกต้องจริง ๆ !

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

1
ดี! โปรดทราบว่าเทคนิคนี้ใช้งานไม่ได้เหมือนเดิมเนื่องจากคุณสิ้นสุดการลบบรรทัดใหม่เมื่อทำการควินินสำรอง ต้องใช้นิดหน่อยในการปรับแต่ง IOW
Claudiu

3
@Claudiu ดีฉันคิดว่ามันขึ้นอยู่กับว่า OP พิจารณาอักขระขึ้นบรรทัดใหม่ ถ้าเป็นเช่นนั้นคุณสามารถเพิ่มบรรทัดใหม่ระหว่างแต่ละบรรทัด 96 chars
qwr

แน่นอนว่าบรรทัดใหม่คือตัวละคร ...
mbomb007

11

Golfscript 5 คะแนน

{hai}

เป็นฟังก์ชันที่เมื่อดำเนินการจะทำงาน (ไม่ใช่ที่มีอยู่) haiฟังก์ชั่น มันไม่ได้ถูกดำเนินการ แต่จะพิมพ์ออกมาเมื่อโปรแกรมสิ้นสุดลงรวมถึงวงเล็บด้านนอกด้วย การลบอักขระแต่ละตัวให้ผลตอบแทน:

{a}

ง่อยฉันรู้ :-)


ฉันเชื่อว่าคุณมีสิทธิ์ได้รับโบนัสทั้งคู่เช่นกัน: โปรแกรมของคุณไม่ได้อ่านซอร์สโค้ดของตัวเองและ{}เป็นควินินด้วย
Ilmari Karonen

@IlmariKaronen มันยากที่จะบอกสิ่งที่นับว่าเป็นการอ่านซอร์สโค้ดของตัวเอง ฟังก์ชั่นที่ไม่ได้ประเมินค่าจะถูกนับหรือ การประเมินสตริงจะนับหรือไม่? ในฐานะที่เป็นโบนัสอื่น ๆ - บางทีมันอาจจะเป็นเพียงแค่คำพูดไม่ดี แต่ผมอ่าน "ลบทุกสี่ตัวอักษร" เป็น "ให้ตัวละครทุกตัวที่ห้า" ซึ่งจะทิ้งฉันกับหนึ่งในวงเล็บเท่านั้น (แม้จะ{ab0}มีคุณสมบัติถ้า0สามารถเป็นหนึ่งที่เก็บไว้)
จอห์น Dvorak

มันเป็นคำที่แย่มาก แต่ตัวอย่างแสดงให้เห็นว่ามันหมายถึง อย่างไรก็ตามตามที่คุณทราบ{ab0}มีคุณสมบัติอย่างใดอย่างหนึ่ง
Ilmari Karonen

ดูเหมือนว่าจะใช้{hi}งานได้จะสั้นลง (4 ตัวอักษร) และจะมีสิทธิ์รับโบนัสทั้งหมดด้วย (ดูเหมือนว่าสคริปต์{iจะประเมิน{iด้วยเหตุผลบางอย่าง ... )
Claudiu


8

HQ9 + - 4 * 7.5 * 0.8 = 24 คะแนน

Q+++

ยังคงเงียบสงบกับตัวละครทุกวินาที:

Q+

... และทุก ๆ ห้า:

Q

ขอโทษฉันไม่สามารถต้านทานได้ :)


7

HTML / Markdown, 4 * 7.5 = 30

HHHH

ฉันยอมรับว่านี่เป็นง่อย แต่จริงๆแล้วมันไม่ขัดกับกฎใด ๆ ในคำถาม ยกเว้นว่า HTML / Markdown อาจไม่ถือว่าเป็นภาษาการเขียนโปรแกรมจริง


ฉันคิดว่าฉันไม่ได้ระบุว่าโปรแกรมที่ไม่สามารถแยกได้เล็กกว่านั้นไม่ถูกต้อง แก้ไขความท้าทาย ...
Jwosty

@Jwosty: ดังนั้น "HHHH" ใน HTML จะเป็นผู้ชนะ หมายเหตุ5555ใช้งานไม่ได้เพราะไม่มีตัวอักษร
Claudiu

คุณต้องใช้ตัวอักษร
qwr

@qwr: ลืมว่าเมื่อดู GolfScript ลบออก
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

อืม ... ฉันคิดว่าสิ่งนี้ถูกต้อง: P
Jwosty

5

! / bin / ดวลจุดโทษ

ฉันชอบโซลูชันของ qwrมากฉันสร้างพอร์ตสำหรับ POSIX เชลล์ โปรดอย่าบันทึกลงในชื่อไฟล์ที่มีช่องว่าง

: '#';cat $0

#c a t   $ 0

เริ่มลบที่ตัวอักษรหมายเลข 1 และนับบรรทัดใหม่เป็นตัว ควินที่สองแน่นอนว่า:

 #;a 0
cat $0

โปรดตอบคำถามของ qwr แทนคำตอบนี้!


3

Bash, 23

Newline เป็นตัวละคร!

ความคิดเห็นยุ่ง ๆ บางอย่างทำงานดังนั้นเมื่อตัวละครอื่น ๆ ที่เริ่มต้นตั้งแต่แรกถูกลบความคิดเห็นจะกลายเป็นรหัสและรหัสจะกลายเป็นความคิดเห็น:

#cRaRtR R$R0R R#
cat $0

หลังจากลบอักขระอื่น ๆ ( รวมถึงบรรทัดใหม่ ) แล้ว:

cat $0 #ct$

มันไม่ได้เป็นควินหากอ่านแหล่งของตัวเอง
daniero

@daniero "-15% ถ้าแก้ปัญหาไม่ได้อ่านแหล่งที่มาจากที่ใดก็ได้ในรูปแบบใด" หมายความว่าคุณจะได้รับอนุญาตให้อ่านแหล่งที่มาของโปรแกรม ( แต่คุณไม่ได้รับโบนัส)

@daniero โอ้ฉันดูวิกิพีเดียฉันคิดว่ามันเป็นการโกง ... แต่มันเป็นcode-golf

ฉันโหวตแมวอยู่เสมอ!
อันโตนิโอ Ragagnin

2

Brainf ** k, 37 - 15% = 31.45

การใช้ล่าม Brainfuck แบบพกพาในทางที่ผิด

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

เริ่มลบออกจากตัวละครตัวที่สอง


เมื่อฉันรันสิ่งนี้ฉันจะได้B-C<D+E]F-GÿH<I<J<K<L<M<N<O[P.Q>R]ผลลัพธ์ตามที่กำหนดดังนั้นจึงไม่มีอักขระบางตัว
Sylwester

มัน Brainfuck หรือเป็นภาษาเฉพาะของ Brainfuck ที่ใช้งานได้กับล่ามคนเดียวเท่านั้น?
user253751

@immibis เป็นเรื่องปกติ (ตัวพิมพ์ใหญ่เหล่านั้นอาจเป็นช่องว่างหรือสัญลักษณ์หรืออะไรก็ได้) อย่างไรก็ตามคุณต้องใช้ล่ามแบบพกพาที่เชื่อมโยงจากคำตอบ
Timtech

1
ส่วนแรกจะไปทางซ้ายจนกระทั่งพบÿและล่ามที่เชื่อมโยงเกิดขึ้นเพื่อจัดเก็บรหัส 5000 ไบต์ก่อนเริ่มเทปข้อมูล นั่นเป็น Brainfuck แบบพกพาแทบจะไม่
user253751

0

HQ9 + T - 4 * 0.8 = 3.2 คะแนน

qqqq

มันเป็นควินที่ถูกต้อง (ish) และควินทุกตัวที่สองและห้า ฉันไม่สามารถต้านทาน . . .

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.