มากน้อยและน้อยก็มาก


72

ทุกคนสามารถทำให้ผลลัพธ์ของโปรแกรมใหญ่ขึ้นโดยการเพิ่มตัวละครดังนั้นทำตรงข้ามกัน

เขียนโปรแกรมเต็มฟังก์ชั่นภายในหรือตัวอย่างสำหรับสภาพแวดล้อม REPL ในภาษาที่คุณเลือกที่ตรงกับเกณฑ์ต่อไปนี้:

  1. รหัสของคุณจะต้องมีความยาวอย่างน้อย 1 ตัวอักษร

  2. ใช้รหัสเดิมผลิตxตัวละครของการส่งออกไปยัง STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด) ที่0 ≤ x <+

  3. การลบอักขระเดี่ยวใด ๆออกจากรหัสต้นฉบับจะให้ผลลัพธ์อีกครั้งในรหัสที่ถูกต้องซึ่งสร้างอย่างน้อยx + 1อักขระของเอาต์พุตไปยัง STDOUT

  4. ทั้งรหัสดั้งเดิมและการแก้ไขอาจสร้างผลลัพธ์ข้อผิดพลาดไม่ว่าจะเป็น STDOUT, STDERR, syslog หรือที่อื่น ๆ ข้อยกเว้นสำหรับกฎนี้เท่านั้นคือคำเตือนของคอมไพเลอร์

    โปรแกรมของคุณอาจไม่ต้องการแฟล็กหรือการตั้งค่าใด ๆ เพื่อระงับเอาต์พุตข้อผิดพลาด

    โปรแกรมของคุณอาจไม่มีข้อผิดพลาดร้ายแรงถึงแม้ว่าพวกเขาจะไม่สร้างผลลัพธ์ใด ๆ ก็ตาม

  5. ทั้งรหัสดั้งเดิมและการแก้ไขจะต้องกำหนดค่าและสิ้นสุดในที่สุด (ไม่มีลูปไม่สิ้นสุด)

  6. ทั้งรหัสดั้งเดิมและการแก้ไขอาจไม่จำเป็นต้องใส่ข้อมูลใด ๆ

  7. ฟังก์ชั่นหรือตัวอย่างอาจไม่รักษาสถานะใด ๆ ระหว่างการประหารชีวิต

พิจารณาว่างานนี้ไม่ได้เป็นเรื่องเป็นบางภาษาและจริงจังเป็นไปไม่ได้ที่คนอื่น ๆ นี้เป็นความนิยมประกวด

เมื่อลงคะแนนโปรดใช้ "ญาติถี่" ของรหัสเข้าบัญชีคือคำตอบที่สั้นกว่าควรได้รับการพิจารณาความคิดสร้างสรรค์มากกว่าคำตอบอีกต่อไปในภาษาเดียวกัน


2
ในขณะที่โซลูชัน 1 ไบต์น่าประทับใจมันจะน่าประทับใจมากขึ้นที่จะเห็นว่าใครสามารถเกิดขึ้นกับอัตราส่วนสูงสุดของ x: x + nie ความยาวของเอาต์พุตปกติเมื่อเทียบกับความยาวเฉลี่ยของเอาต์พุตเมื่ออักขระตัวใดตัวหนึ่งถูกลบ เพิ่มความท้าทายเป็นพิเศษสำหรับคำถามนี้ในความคิดของฉัน
เทรนต์

@FizzBuzz ง่าย: 111111111111111111^111111111111111111(ถ้าคุณหมายถึงอัตราส่วนต่ำสุด)
jimmy23013

2
อ๊ะเพิ่งสังเกตว่า 'ไม่มีลูปไม่มีที่สิ้นสุด' ฉันกำลังทำงานเกี่ยวกับการสร้างโปรแกรม> <> ที่จะสร้างผลลัพธ์ได้เร็วขึ้นถ้าตัวละครตัวหนึ่งถูกลบเช่นหลังจากkคำสั่งคงที่ผลลัพธ์ของแต่ละโปรแกรมจะยิ่งใหญ่กว่าผลลัพธ์ของต้นฉบับตั้งแต่นั้นมาอย่างเคร่งครัด โปรแกรมจะวนซ้ำเร็วขึ้นหรือส่งออกมากขึ้นในแต่ละวง) มันดูน่าสนใจทีเดียว บางทีฉันอาจจะดูว่าฉันสามารถทำมันให้เสร็จได้หรือไม่และสร้างความท้าทายอีกครั้ง
mbomb007

การให้คะแนนตัวชี้วัดที่น่าสนใจสำหรับความท้าทายนี้อาจเป็น "ตัวละครที่ไม่ซ้ำกันมากที่สุดความสัมพันธ์จะสั้นที่สุด" จากนั้นเราจะพยายามดึงตัวอักษรทั้งหมดให้อยู่ในรูปสตริง
lirtosiast

ฟังก์ชั่นภายในมีความหมายอะไร?
dfeuer

คำตอบ:


94

REPL ใด ๆ ที่มีการดำเนินการ caret XOR ขนาด 5 ไบต์

11^11

11^11เป็นของหลักสูตร 0 ความเป็นไปได้อื่น ๆ เท่านั้นคือ1^11หรือ11^1ที่ 10 หรือ1111สร้างเอง


7
เล่นได้ดี feersum เล่นดี.
Alex A.

13
ลบก็จะทำเคล็ดลับ
Martin Ender

11
ในทำนองเดียวกัน99|99
Sp3000

@ Challenger5 มีความยาวมากกว่า-10 0
Martin Ender

@ มาร์ตินอีกครั้งโอ้ฉันเข้าใจแล้ว ด้วยเหตุผลบางอย่างฉันคิดว่ามันจะต้องมีจำนวนมากขึ้น
แยกผลไม้

55

TI-BASIC, 3 1

"

เมื่อบรรทัดสุดท้ายของโปรแกรมเป็นนิพจน์เครื่องคิดเลขจะแสดงนิพจน์นั้น มิฉะนั้นเครื่องคิดเลขจะปรากฏขึ้นDoneเมื่อโปรแกรมเสร็จสิ้น นิพจน์ที่นี่เป็นสตริงว่าง แต่ก็สามารถใช้ได้กับตัวเลขหนึ่งหลัก

2 ไบต์:

isClockOn

เหมือนกับข้างต้น แต่มีโทเค็น 2 ไบต์

3 ไบต์:

ππ⁻¹

พิมพ์1เนื่องจากการคูณโดยนัย สามารถขยายไปเรื่อย ๆ โดยการเพิ่มคู่ของ⁻¹'s ด้านล่างยังใช้งานได้

√(25
e^(πi
⁻ii
ii³
2ππ   
cos(2π

โซลูชั่นอีกต่อไป:

11/77►Frac
ᴇ⁻⁻44
cos(208341   //numerator of a convergent to pi; prints "-1"

อาจมีวิธีแก้ไขปัญหาหลายบรรทัดด้วย แต่ฉันไม่สามารถหาได้


ฉันไม่คุ้นเคยกับ TI BASIC คุณนับ sqrt และวงเล็บเป็นอักขระตัวเดียวหรือไม่?
เลเวลริเวอร์เซนต์

6
ใช่ sqrt และวงเล็บอยู่ด้วยกันเป็นโทเค็นเดียวจัดเก็บเป็นหนึ่งไบต์ในหน่วยความจำของเครื่องคิดเลขและป้อนด้วยปุ่มกดเดียว
lirtosiast

8
ในที่สุดวิธีที่จะหยุดข้อความ Done ที่น่ารำคาญ!
Faraz Masroor

1
ไม่มีDoneโทเค็น; เครื่องคิดเลขจะปรากฏขึ้นDoneเมื่อดำเนินการโปรแกรมใด ๆ โดยไม่ต้องแสดงออกในบรรทัดสุดท้าย (รวมถึงโปรแกรมที่ว่างเปล่า)
lirtosiast

48

CJam, JavaScript, Python, ฯลฯ , 18 ไบต์

8.8888888888888888

ผลลัพธ์ใน CJam คือ:

8.8888888888888888 -> 8.88888888888889
8.888888888888888  -> 8.888888888888888
88888888888888888  -> 88888888888888888
.8888888888888888  -> 0.8888888888888888

JavaScript และ Python ทำงานในลักษณะเดียวกัน มันไม่ได้ในการแข่งขันใน JavaScript และงูหลามแต่มันไม่ง่ายที่จะหาหนึ่งสั้น CJam


16
การละเมิดจุดลอยตัวดี!
nderscore

31

ระดับเสียงคู่ 5 ไบต์

10:10

(x: y) ให้อาร์เรย์ของตัวเลขระหว่าง x และ y โดยเพิ่มขึ้นทีละ 1 ดังนั้นระหว่าง 10 ถึง 10 องค์ประกอบเดียวคือ 10:

> 10:10
ans = 10

เมื่ออาร์กิวเมนต์ที่สองน้อยกว่าครั้งแรกอ็อกเทฟจะพิมพ์เมทริกซ์ที่ว่างและขนาดของมัน:

> 10:1
ans = [](1x0)

> 10:0
ans = [](1x0)

เมื่ออักขระถูกลบออกจากหมายเลขแรกมีองค์ประกอบเพิ่มเติมในอาร์เรย์:

> 1:10
ans = 1 2 3 4 5 6 7 8 9 10

> 0:10
ans = 0 1 2 3 4 5 6 7 8 9 10

เมื่อลบเครื่องหมายโคลอนแล้วหมายเลขจะส่งกลับ:

> 1010
ans = 1010

1
มีผลบังคับใช้ใน R
mnel

30

ไมโคร, 1 ไบต์

h

สิ่งนี้ไม่ทำให้เกิด ouput เนื่องจากเป็นการhระงับการพิมพ์โดยนัยของภาษา การถอดตัวอักษร 0\nแต่เพียงผู้เดียวผลิตโปรแกรมที่มีการส่งออกเป็น

ฉันจะพยายามหาคำตอบที่ดีกว่าในภายหลัง

แก้ไขเมื่อวันที่ 17 พฤศจิกายน:

นอกจากนี้ยังทำงานใน Microscript ครั้งที่สองมีข้อยกเว้นว่าแทนการให้ผลผลิตที่อัตราผลตอบแทนโปรแกรมที่ว่างเปล่า0\nnull


22

Pyth, 3 ไบต์

cGG

Gถูกกำหนดค่าเริ่มต้นด้วยตัวอักษรตัวพิมพ์เล็กในตัวอักษร cเป็นฟังก์ชั่นแยก

cGGแยกตัวอักษรตามเหตุการณ์ที่เกิดขึ้นของตัวอักษรซึ่งลงท้ายด้วย['', ''](8 ไบต์)

เมื่อพารามิเตอร์ที่สองหายไปให้cแยกสตริงด้วยช่องว่างแท็บหรือบรรทัดใหม่ เนื่องจากไม่มีของพวกเขาปรากฏในGเอาท์พุทสำหรับcGเป็น['abcdefghijklmnopqrstuvwxyz'](30 bytes)

และGGพิมพ์ตัวอักษรสองครั้งบนบรรทัดสองบรรทัดแยกกัน: abcdefghijklmnopqrstuvwxyz\nabcdefghijklmnopqrstuvwxyz(53 ไบต์)

ลองใช้งานออนไลน์: การสาธิต


16

Python REPL ขนาด 6 ไบต์

ไม่ใช่คำย่อที่สั้นที่สุด แต่นี่เป็นอีกคำตอบหนึ่งของการละเมิดจุดลอย:

>>> 1e308
1e+308
>>> 11308
11308
>>> 11e08
1100000000.0
>>> 11e38
1.1e+39
>>> 11e30
1.1e+31

แต่...

>>> 11e308
inf



11

Lenguage 5 ไบต์

00000

ความยาวของโปรแกรมคือ 5 ซึ่งสอดคล้องกับโปรแกรม brainf *** ที่,อ่านส่วนท้ายของอักขระอินพุตและสิ้นสุดโดยไม่มีเอาต์พุต

การลบผลลัพธ์ char ใด ๆ ในโค้ด0000ที่มีความยาว 4 ตัวซึ่งสอดคล้องกับโปรแกรม brainf *** ที่.พิมพ์อักขระหนึ่งตัว (codepoint 0) และยกเลิก

เอกเทียบเท่าจะเป็น0000000000000(13 ศูนย์) เพราะคุณจะต้องย่อหน้าชั้นนำ1กับความยาวของฐานรหัสเพื่อจะกลายเป็น1011101


9

PHP, 6 ไบต์

ฉันเฝ้าดูกลุ่มนี้มาสองสามสัปดาห์แล้วและทึ่งกับเทคนิคการเขียนโปรแกรมของคุณ ตอนนี้ฉันต้องลงชื่อเข้าใช้มีบางสิ่งที่ฉันทำได้ขอโทษ :-) อย่างไรก็ตามนี่อาจเป็นโพสต์สุดท้ายของฉันที่นี่ ...

<?php 

(สังเกตช่องว่างหลังจากวินาทีp)

เอาต์พุตนี้เป็นสตริงว่าง การเอาอักขระใด ๆ ออกข้อความโดยไม่มีอักขระ โปรดทราบว่าสามารถสร้างข้อผิดพลาด HTML (เนื้อหาที่ไม่ได้แสดงผลโดยเบราว์เซอร์เช่น<?ph)

ฉันลองด้วยechoแท็ก กล่าวคือ เช่น.:

<?= __LINE__;;

สิ่งนี้ออก1มา หาก=ไม่ได้ระบุไว้<? __LINE__;;จะเป็นผลลัพธ์ อย่างไรก็ตามการลบอักขระคงที่ใด ๆ ที่วิเศษจะส่งผลให้E_NOTICE : ประกาศ: การใช้LNEคงที่ที่ไม่ได้กำหนด- สันนิษฐานว่า ' LNE ' ใน ...

หากการแจ้งนั้นไม่ถือเป็นข้อผิดพลาด (จุดที่ 4 ของกฎ) สิ่งนี้จะนำไปใช้ :-)


โอ้นั่นฉลาด ฉันเดาว่าผู้ป้อนโฆษณาจะทำงานได้ดีเช่นกัน หากภารกิจคือการสร้างHTMLสิ่งนี้จะไม่ถูกต้อง อย่างไรก็ตาม PHP สามารถเรียกใช้จากบรรทัดคำสั่งเช่นเดียวกับภาษาการเขียนโปรแกรมอื่น ๆ ที่มีการพิมพ์ผลลัพธ์ไปยังหน้าจอ
Dennis

@Dennis PHP แสดงผลทุกอย่าง คุณสามารถใช้ CTRL-U ในเบราว์เซอร์ของคุณเพื่อดูผลลัพธ์ HTML อาจไม่ถูกต้อง แต่อันที่จริงโปรแกรมไม่ได้ (ไม่มี<HTML>แท็กอื่น ๆ )
Voitcus

1
ประเด็นของฉันคือไม่จำเป็นต้องเกี่ยวข้องกับเบราว์เซอร์เลย php test.phpเพียงแค่ดำเนินการ รหัสที่สองไม่ถูกต้องตามวิธี คำถามที่ไม่ได้ห้าม แต่ข้อผิดพลาดออกข้อผิดพลาดข้อผิดพลาดความหมายคำเตือนประกาศ ฯลฯ
เดนนิส

2
#!ในไฟล์สคริปต์ก็ใช้งานได้
jimmy23013

9

Python 10 8 ไบต์

256**.25

ทำงานใน Python และผองเพื่อน ขอบคุณ Jakube ที่แสดงวิธีทำให้ขนาดเล็กลง 2 ไบต์

จาก IDLE:

>>> 256**.25
4.0
>>> 26**.25
2.2581008643532257
>>> 56**.25
2.7355647997347607
>>> 25**.25
2.23606797749979
>>> 256*.25
64.0
>>> 256*.25
64.0
>>> 256**25
1606938044258990275541962092341162602522202993782792835301376L
>>> 256**.5
16.0
>>> 256**.2
3.0314331330207964

แต่เดิมฉันมีสิ่งนี้ (10 ไบต์):

14641**.25

จาก IDLE:

>>> 14641**.25
11.0
>>> 4641**.25
8.253780062553423
>>> 1641**.25
6.364688382085818
>>> 1441**.25
6.161209766937384
>>> 1461**.25
6.18247763499657
>>> 1464**.25
6.185648950548194
>>> 14641*.25
3660.25
>>> 14641*.25
3660.25
>>> 14641**25
137806123398222701841183371720896367762643312000384664331464775521549852095523076769401159497458526446001L
>>> 14641**.5
121.0
>>> 14641**.2
6.809483127522302

และในบันทึกเดียวกัน:

121**.25*121**.25

ทำงานเหมือนกันเนื่องจากการปัดเศษที่ดีโดย Python ขนาด 17 ไบต์

>>> 121**.25*121**.25
11.0
>>> 21**.25*121**.25
7.099882579628641
>>> 11**.25*121**.25
6.0401053545372365
>>> 12**.25*121**.25
6.172934291446435
>>> 121*.25*121**.25
100.32789990825084
>>> 121*.25*121**.25
100.32789990825084
>>> 121**25*121**.25
3.8934141282176105e+52
>>> 121**.5*121**.25
36.4828726939094
>>> 121**.2*121**.25
8.654727864164496
>>> 121**.25121**.25
29.821567222277217
>>> 121**.25*21**.25
7.099882579628641
>>> 121**.25*11**.25
6.0401053545372365
>>> 121**.25*12**.25
6.172934291446435
>>> 121**.25*121*.25
100.32789990825084
>>> 121**.25*121*.25
100.32789990825084
>>> 121**.25*121**25
3.8934141282176105e+52
>>> 121**.25*121**.5
36.4828726939094
>>> 121**.25*121**.2
8.654727864164496

@Akiino ฉันไม่เข้าใจการแก้ไขที่คุณทำ บรรทัดที่คุณลบออกเป็นหนึ่งในความเป็นไปได้ที่ต้องการและไม่แตกต่างจากที่มีอยู่ด้านล่าง คุณช่วยอธิบายได้ไหมว่าทำไมคุณถึงลบมันออก? ฉันย้อนกลับไป แต่สามารถยอมรับเพื่อยกเลิกการกระทำด้วยเหตุผลที่เพียงพอ
rp.beltran

ผู้ชอบความสมบูรณ์แบบภายในของฉันนอนไม่หลับเพราะรู้ว่าบรรทัด (อันที่ฉันลบออกไป) ซ้ำซ้อนกันโดยไม่มีเหตุผล มีเส้น56..., 26...และจากนั้น56...ไม่ได้อีกครั้ง แต่มีทางเดียวเท่านั้นที่จะได้รับ 56 ดังนั้นจึงควรจะรวมเพียงครั้งเดียวคือ?
Akiiino

โอ้ฉันไม่เห็นว่ามันมีอยู่สองครั้ง ฉันจับได้ไม่ดี
rp.beltran

ฉันย้อนกลับไปย้อนกลับ
rp.beltran

7

SWI-Prolog interpreter

__A=__A.

หมายเหตุ: คุณไม่สามารถลบไฟล์สุดท้าย.ได้ Prolog interpreters มักจะมองหาช่วงเวลาสุดท้ายที่จะเรียกใช้คิวรีของคุณดังนั้นถ้าเรายึดกฎของการแข่งขันนี้อย่างเคร่งครัดและอนุญาตให้เราลบช่วงเวลาที่มันจะไม่ทำงานมันจะข้ามเส้นและรอคำสั่งเพิ่มเติมจนกว่า จบลงด้วยจุด

แบบสอบถามเดิมเอาท์พุท__A=__A.true.

แบบสอบถามเอาท์พุท_A=__A. _A = '$VAR'('__A')การแก้ไขที่คล้ายกัน (เช่นการลบหนึ่ง_หรือหนึ่งในสองA) จะส่งผลให้ผลลัพธ์ที่คล้ายกัน

ในที่สุด__A__A.ผลลัพธ์ของแบบสอบถามใน SWI-Prolog:

% ... 1,000,000 ............ 10,000,000 years later
% 
%       >> 42 << (last release gives the question)

12
@Jakube ฉันไม่เห็นว่าการมีช่วงเวลาสุดท้ายบังคับแตกต่างจากการป้อนคีย์ Enter เพื่อเรียกใช้ตัวอย่างในภาษาอื่น หากคุณลบ linefeed มันจะไม่ทำงานอย่างใดอย่างหนึ่ง
ทำให้เสียชีวิต

มันมีความหมายเทียบเท่ากับเครื่องหมายอัฒภาคในบางภาษาและนับเป็นอักขระ
tomsmeding

5

Sed, 1 ไบต์

d

เช่นเดียวกับที่sedต้องใช้สตรีมอินพุตฉันจะเสนอข้อตกลงที่ควรจัดหาโปรแกรมเองเป็นอินพุต

$ sed -e 'd' <<<'d' | wc -c
0
$ sed -e '' <<<'d' | wc -c
2

โปรแกรมทางเลือกคือxแต่จะเปลี่ยนจาก1เป็น2ไบต์ของเอาต์พุตเท่านั้นเมื่อถูกลบ


2
ฉันลืมเพิ่มกฎการป้อนข้อมูลลงในคำถามดังนั้นคุณไม่ได้ละเมิดกฎใด ๆ ในขณะที่ส่ง ฉันได้สร้างการสนทนาภาษาอย่างเช่นได้รับการยกเว้นจากกฎ“ ไม่มีอินพุต” หรือไม่? บน Meta
Dennis

5

K, 3 ไบต์

2!2

เอาต์พุต0ใน REPL การเอา 2 เอาต์พุตแรกออก0 1การลบเครื่องหมายอัศเจรีย์ส่งผล22ให้และลบ 2 ผลลัพธ์สุดท้ายในสตริงที่แตกต่างกันระหว่างการใช้งาน K แต่อย่างน้อย 2 อักขระเสมอ (ใน oK คือ(2!); ตาม @Dennis, Kona output 2!)


@ Sp3000 การลบงาน*พิมพ์ที่เพิ่งพิมพ์ออก 2. การลบ 2 งานพิมพ์(*!)(ฟังก์ชั่นที่ไม่สมบูรณ์) ในหน่วย oK; ฉันไม่รู้เกี่ยวกับล่ามอื่น ๆ (เช่น Kona, k2 เป็นต้น) ถึงแม้ว่าฉันเชื่อว่า Kona จะพิมพ์ออกมา*[!;]หรือคล้ายกัน ฉันไปกับการลบดาวเพราะมันดูปลอดภัยที่สุด
kirbyfan64sos

คุณไม่สามารถเลือกมันจะต้องทำงานลบตัวละครใด ๆ
edc65

@ edc65 แก้ไขค่าใช้จ่ายไม่ใช่ไบต์เดียว
kirbyfan64sos

1
@Dennis Updated
kirbyfan64sos

5

MATLAB, 9 7 ไบต์

มีความยาวมากกว่าไบต์ 2 คำตอบอื่น ๆ ของ MATLAB / Octave แต่ฉันชอบมันอย่างไรก็ตามเนื่องจากมันซับซ้อนกว่าเล็กน้อย

'ผู้ประกอบการของ Matlab เป็นรูปผันผันผันที่ซับซ้อน i' = -iใช้นี้ในจำนวนจินตนาการเกลาคุณจะได้รับ ในฐานะที่เป็นตัวเลขในจินตนาการสามารถเขียนได้ง่าย ๆ2iอย่างที่ทำได้:

2i--2i'
ans =
     0    

การลบหนึ่งในตัวละครใด ๆ จะส่งผลให้หนึ่งในด้านล่าง:

ans =
   0.0000 - 1.0000i
   2.0000 - 2.0000i
   0.0000 + 4.0000i
   0.0000 + 4.0000i
   0.0000 + 1.0000i
   2.0000 + 2.0000i
   0.0000 + 4.0000i

4

GolfScript 2 ไบต์

คำตอบนี้ไม่ใช่การแข่งขัน แต่เนื่องจากเป็นส่วนหนึ่งของรหัสที่เป็นแรงบันดาลใจให้กับความท้าทายนี้ฉันจึงต้องการแบ่งปันต่อไป

:n

ตามค่าเริ่มต้นโปรแกรม GolfScript ทั้งหมดจะพิมพ์สแต็กทั้งหมดตามด้วยตัวป้อนบรรทัดโดยดำเนินการputsกับสแต็กทั้งหมด ฟังก์ชั่นของputsตัวเองถูกนำมาใช้เช่นเดียวกับ{print n print}ในล่ามที่printเป็นจริงในตัวและnเป็นตัวแปรที่เก็บสตริง"\n"โดยค่าเริ่มต้น

ตอนนี้โปรแกรม GolfScript จะดันอินพุตจาก STDIN บนสแต็กเสมอ ในกรณีนี้เนื่องจากไม่มีอินพุตใด ๆ สตริงว่างจะถูกพุช การกำหนดตัวแปร:nจะบันทึกสตริงที่ว่างในnนั้นหยุดการป้อนบรรทัดโดยนัยและทำให้เอาต์พุตว่างอย่างสมบูรณ์

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

ด้วยการกำจัด:คุณจะเหลือnซึ่งจะผลัก linefeed บนสแต็คดังนั้นโปรแกรมจะพิมพ์สองบรรทัดฟีด


4

APL, J และตัวแปรอื่น ๆ , 3 ไบต์

--1

มันส่งออก1ใน APL -1เอาท์พุท¯1และ--เอาท์พุทต่อไปนี้ในTryAPL :

┌┴┐
- -

3

J, 5 ไบต์

|5j12

ขนาดของจำนวนเชิงซ้อน5 + 12iใน REPL

   |5j12 NB. original, magnitude of the complex number `5 + 12i`
13
   5j12  NB. the complex number `5 + 12i`
5j12
   |j12  NB. magnitude of the undefined function j12
| j12
   |512  NB. magnitude of 512
512
   |5j2  NB. magnitude of 5 + 2i
5.38516
   |5j1  NB. magnitude of 5 + 1i
5.09902

.

J, 9 ไบต์

%0.333333

ขึ้นอยู่กับความแม่นยำจุดลอย, ผกผันซึ่งกันและกันและเมทริกซ์

   %0.333333 NB. original, reciprocal of 0.333333
3
   0.333333  NB. 0.333333
0.333333
   %.333333  NB. matrix inverse of 333333
3e_6
   %0333333  NB. reciprocal of 333333
3e_6
   %0.33333  NB. reciprocal of 0.33333
3.00003

ลองออนไลน์ได้ที่นี่


3

Mathematica ขนาด 3 ไบต์

4!0

4!0  ->  0    the factorial of 4, times 0
4!   ->  24   the factorial of 4
40   ->  40
!0   ->  !0   the logical not of 0, but 0 is not a boolean value


2

Swift (และอีกมากมาย), 8 ไบต์

93^99<84

เอาท์พุท (4 ตัวอักษร):

true

เมื่อลบอักขระ nth เอาต์พุตคือ:

n -> out
----------
0 -> false
1 -> false
2 -> false
3 -> false
4 -> false
5 -> 10077
6 -> false
7 -> false

มี 78 a^b<cโซลูชั่นที่เป็นไปเช่นนี้ในรูปแบบของการเป็น

ฉันคิดว่าเป้าหมายของการท้าทายนี้ควรมีจำนวนมากที่สุดเท่าที่จะเป็นไปได้เพราะยิ่งมีจำนวนไบต์มากเท่าไหร่ก็ยิ่งสามารถลบได้มากขึ้นเท่านั้น


ฉันคิดเกี่ยวกับเรื่องนี้ แต่มันจะง่ายสำหรับภาษาที่ใช้กองซ้อน หากนี่เป็นความท้าทายในการโยนรหัส aditsu จะมีคะแนน infinte รหัสของเขาสามารถทำซ้ำได้ซ้ำแล้วซ้ำอีก; แต่ละสำเนาจะทำสิ่งเดียวกัน
Dennis

@ เดนนิสโอ้ฉันเข้าใจแล้วใช่ แต่ฉันคิดว่า bytes อาจไม่ใช่วิธีที่ดีมากสำหรับงานนี้
Kametrixom

ฉันเห็นด้วย. นั่นเป็นเหตุผลที่มันเป็นการประกวดความนิยม คำตอบที่ upvoted ส่วนใหญ่ชนะ
Dennis

2

MathGolf 2 ไบต์

♂(

ลองออนไลน์!

คำอธิบาย

♂   Push 10
 (  Decrement TOS by 1

ทำไมจึงใช้งานได้

9การส่งออกปกติ หาก(ถูกนำออกออกเป็น 10. ถ้าจะถูกลบออกโปรแกรมโดยปริยายปรากฏ 0 จากสแต็คที่จะเลี้ยงผู้ประกอบการซึ่งเอาท์พุท(-1


1

Clojure 11 ไบต์

(defn x[]1)

ตอนแรกฉันคิดว่าจะโพสต์คำตอบตัวละครเดียวใน REPL เหมือนกับภาษาอื่น ๆ เช่น

user=> 1
1

แต่ปัญหาคือถ้าคุณลบตัวอักษรนั้น REPL จะไม่ทำอะไรเลยเมื่อกดปุ่ม Enter ดังนั้นจึงต้องห่อด้วยฟังก์ชันตามกฎของคำถาม เมื่อคุณเรียกใช้ฟังก์ชั่นนี้มันจะคืนค่า 1 หากคุณลบเฉพาะอักขระในฟังก์ชัน

(defn x[])

ฟังก์ชันจะคืนค่าnilที่พิมพ์สองไบต์เพิ่มเติม

user=> (defn x[]1)
#'user/x
user=> (x)
1
user=> (defn y[])
#'user/y
user=> (y)
nil

1
เพื่อชี้แจง: การประกวดต้องใช้ฟังก์ชันภายในซึ่งจะเป็น1ในกรณีนี้ (1 ไบต์)
เดนนิส

1

05AB1E (ดั้งเดิม) 1 ไบต์

ไบต์เดี่ยวใด ๆ ใน 05AB1E (ดั้งเดิม) จะใช้งานได้ยกเว้น[(infinite loop)

ดูผลลัพธ์ทั้งหมดที่เป็นไปได้สำหรับโปรแกรม 05AB1E ไบต์เดียวที่เป็นไปได้ทั้งหมด

การลบไบต์เดียวนั้นเพื่อให้โปรแกรมว่างยังคงเอาท์พุทเนื้อหาของ info.txt ไปยัง STDOUT แทนโดยค่าเริ่มต้น

ลองออนไลน์


05AB1E , 1 ไบต์

?

ลองออนไลน์

น่าเสียดายที่โปรแกรมว่างในรุ่นใหม่ของ 05AB1E จะแสดงบรรทัดใหม่ 1 ไบต์ตามค่าเริ่มต้นเท่านั้น ( ลองออนไลน์ ) ดังนั้นแทบไม่มีอักขระขนาด 1 ไบต์ที่เป็นไปได้ โปรแกรมไปได้เฉพาะที่ผลอะไร (จึงยังไม่ได้ขึ้นบรรทัดใหม่โดยปริยาย) คือ?เท่าที่ผมทราบ


0

Japtap , 2 ไบต์

ลองออนไลน์!

Aเป็นก่อนเริ่มต้นได้ถึง 10 Éลบ 1 และผลที่ได้คือ 1 9ไบต์:

การลบผลลัพธ์ÉในโปรแกรมAซึ่งส่งออกค่าของ A 10ดังนั้นผลลัพธ์คือ 2 ไบต์

ในทำนองเดียวกันการลบ Aผลลัพธ์Éซึ่งถูกตีความเป็น -1 และเอาต์พุตเป็น-1ดังนั้นผลลัพธ์คือ 2 ไบต์


0

Runic Enchantments , 6 (แก้ไขได้) ไบต์

11-{{B\
/B~~@/
\00<
R"Error"@

ลองออนไลน์!

Runic ไม่มีสภาพแวดล้อมแบบ REPL และการเขียนโปรแกรมเต็มรูปแบบเพื่อให้เป็นไปตามข้อ จำกัด นั้นไม่สามารถทำได้อย่างง่ายดาย (นำไปสู่โปรแกรมที่ไม่ถูกต้องหรือไม่มีเอาต์พุต) ดังนั้นส่วนของรหัส11-{{Bจึงทำหน้าที่เป็นฟังก์ชั่นด้านในและสามารถแก้ไขได้เฉพาะส่วนนี้ Bคำแนะนำอยู่ใกล้พอที่จะเป็นตัวชี้ฟังก์ชั่นและงบการกลับมาว่าการจัดหมวดหมู่นี้ควรจะเป็นที่ยอมรับได้ (ตามที่มันกระโดด IP ไปยังตำแหน่งในรหัสเช่นเดียวกับการผลักดันตั้งกลับไปยังกองซึ่งอาจเข้าถึงได้โดยต่อมาBหรือทิ้ง) .

  • เอาต์พุตมาตรฐาน: 0
  • การลบ1s:05
  • การลบ-:11
  • การลบอย่างใดอย่างหนึ่ง{:Error051
  • การลบB:120

สุดท้าย\ในตอนท้ายของบรรทัดแรกให้ขอบเขตภายนอกรอบฟังก์ชั่นด้านในในกรณีที่คำสั่งคืนถูกลบออกเพื่อให้ IP ไม่ไปคดเคี้ยวไปทั่วทุกที่จำใจ (และพิมพ์ออกไม่มี)

โปรดทราบว่าError051เป็นเพียงสตริงโดยพลการฉันสามารถใส่สิ่งที่ฉันต้องการลงในส่วนของรหัสนั้นและ "ข้อผิดพลาด" เป็นผลลัพธ์ที่น่าขบขันสำหรับการมีรหัสที่ทำให้ค่าพิกัดกลับมาและ IP teleports ไปยังตำแหน่งที่กำหนดเอง

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