พิมพ์หมายเลขที่หายไป


16

ในฐานะแฟนตัวยงของซีรี่ส์ทีวีที่หายไปฉันรู้สึกทึ่งกับตัวเลขที่ปรากฏซ้ำ ๆ ในตอนต่างๆ ตัวเลขเหล่านี้คือ:

4,8,15,16,23,42 (A104101)

ใช้ภาษาการเขียนโปรแกรมใดเขียนรหัสที่แสดงผลตัวเลขเหล่านี้

เกณฑ์การให้คะแนน:

  • คำตอบที่สั้นที่สุดชนะ

  • ผลลัพธ์จะต้องไม่มีตัวเลขหรือตัวอักษรอื่นใด คุณสามารถใช้อักขระอื่นเป็นตัวคั่นหรือแม้แต่ไม่มีตัวคั่นก็ได้

  • คุณไม่สามารถแยกตัวเลขที่เป็นตัวเลขเดียวกันได้ 48_15162342เป็นคำตอบที่ถูกต้อง แต่481_5162342ไม่ใช่

  • คุณต้องเคารพคำสั่ง

  • หากรหัสของคุณไม่มีตัวเลขใด ๆ จากลำดับให้ลดคะแนนของคุณลง 30% กฎนี้อนุญาตให้คุณป้อนตัวเลขแยกจากกัน เช่น:

    abcde1fg5h
    

    เป็นผู้สมัครที่ถูกต้องเพราะคำตอบไม่ได้มีจำนวน15เพียงตัวเลขเท่านั้น อย่างไรก็ตาม4หรือ8ใด ๆจะทำให้โบนัสใช้ไม่ได้

  • หากรหัสไม่มีตัวเลขใด ๆ เลยให้ลดคะแนนของคุณลง 50% ตัวละครอื่น ๆ เช่น , ²หรือยังคงใช้ได้สำหรับโบนัสนี้¹²³


2
ที่เกี่ยวข้อง, คำถามปิด: codegolf.stackexchange.com/q/23808/67312
Giuseppe

2
เกี่ยวข้องกับ Vaguely: คุณแพ้หรือยัง
Dennis

1
พวกเราต้องพิมพ์มันตามลำดับไหม?
ติตัส

6
สำหรับการอ้างอิงในอนาคตเรามีrestricted-sourceแท็กที่สามารถนำมาใช้ที่นี่: แม้ว่าคำตอบส่วนใหญ่จะหลีกเลี่ยงการแก้ปัญหาที่ชัดเจน แต่ฉันคิดว่าความท้าทายจะน่าสนใจยิ่งขึ้นเล็กน้อยหากใช้ตัวเลขเป็นสิ่งต้องห้ามทั้งหมด
Arnauld

คำตอบ:


31

แพ้แล้ว, 29 27/2 = 13.5 ไบต์

%?\>>>>>>>>>>
>>\"*"@"

ลองออนไลน์! หรือตรวจสอบว่ามันถูกกำหนดไว้แล้ว

ดูเหมือนว่าภาษาที่เหมาะสมที่จะใช้

คำอธิบาย:

Lost เป็นภาษา 2D ที่ตัวชี้เริ่มต้นทุกที่ไปในทิศทางใด โดยทั่วไปจะนำไปสู่การตรวจสอบซ้ำหลายครั้งว่าตัวชี้ไม่ได้เข้าสู่ส่วนก่อน

...>>>>>>>>>>  These arrows filter all pointers that appear on the top line
.............  Or going vertically


%............  This flips the flag so that the program can end
.............  This stops premature termination

.?\..........  Clear the stack by skipping if a value popped from the stack is positive
.............  When the stack is empty, the \ directs the pointer down

.............  The \ directs the pointer right
..\"*"..  The string literal pushes all the Lost values to the stack

..\..........  The @ terminates the program if the % flag is switched
>>\........@.  Otherwise it clears the stack and repeats

.............  The quote here is to prevent the pointer getting stuck
............"  This happens when the pointer starts between the other quotes

11

เยลลี่ , 7/2 = 3.5 ไบต์

“ƲÞIȥ’Ḥ

พิมพ์ตัวเลขที่โดยไม่ต้องแยกคือเลขที่48151623424815162342

ลองออนไลน์!

มันทำงานอย่างไร

“ƲÞIȥ’เป็น bijective base-250 จำนวนเต็มตามตัวอักษร
Ʋ, Þ, Iและȥมี (1-based) ดัชนี154 , 21 , 74และ171ในหน้ารหัส Jelly ดังนั้นพวกเขาเข้ารหัสจำนวนเต็ม2503154+250221+25074+171=2407581171 2407581171

สุดท้าย(unhalve) คู่จำนวนเต็มยอม22407581171=4815162342 4815162342

การเพิ่มทวีคูณเป็นสิ่งจำเป็นเนื่องจากการเข้ารหัสเอาต์พุตจะนำไปสู่โดยตรง“¡9)Ƙ[’ซึ่งมีตัวเลข



6

05AB1Eคะแนน: 10 9 7 ไบต์ / 2 = 3.5

•‘o]Ê•·

ลองออนไลน์

หรือทางเลือก 7 ไบต์ :

•’µ[%•R

ลองออนไลน์

4815162342ทั้งการแสดงผลจำนวนเต็ม

คำอธิบาย:

•‘o]Ê•     # Compressed integer 2407581171
      ·    # Doubled

•’µ[%•     # Compressed integer 2432615184
      R    # Reversed

ดู 05AB1E เคล็ดลับของฉัน (ส่วนวิธีบีบอัดจำนวนเต็มขนาดใหญ่ )เพื่อทำความเข้าใจว่าเพราะ•‘o]Ê•อะไร2407581171และ•’µ[%•เป็น2432615184อย่างไร


Old 9 ไบต์ตอบเอาท์พุทรายการ[4,8,15,16,23,42]:

•ΓƒÇ²•т;в

-1 ไบต์ (และดังนั้นจึง -0.5 คะแนน) ขอบคุณที่@Emigna

นานกว่าคำตอบที่ 05AB1E อื่น ๆแต่ outputs รายการแทนจำนวนเต็ม[4,8,15,16,23,42]4815162342

ลองออนไลน์

คำอธิบาย:

•ΓƒÇ²•       # Compressed integer 1301916192
      т;     # Integer 50 (100 halved)
        в    # Convert the first integer to Base-50 (arbitrary): [4,8,15,16,23,42]

ดู 05AB1E นี้เคล็ดลับของฉัน (ส่วนวิธีการบีบอัดจำนวนเต็มขนาดใหญ่?และวิธีการบีบอัดจำนวนเต็มรายการ? )จะเข้าใจว่าทำไม•ΓƒÇ²•เป็น1301916192และเป็น•ΓƒÇ²•50в[4,8,15,16,23,42]


1
คุณอาจมี•ΓƒÇ²•т;вสำหรับ4.5เป็นตัวเลขที่โพสต์สคริปต์จะถูกโบนัส
Emigna

@Emigna อ่าดี! ขอบคุณ
Kevin Cruijssen

6

JavaScript (ES7), 34/2 = 17 ไบต์

_=>eval(atob`NjUwNTgxMDErNDEqKjY`)

ลองออนไลน์!

สิ่งนี้จะถอดรหัสและประเมินผลการแสดงออก"65058101+41**6"ซึ่งไม่ได้มีตัวเลขใด ๆ เมื่อเข้ารหัสในฐาน -64

65058101+416=65058101+4750104241=4815162342


JavaScript (ES6), 13 ไบต์

ทางออกที่ชัดเจนน่าเบื่อ

_=>4815162342

ลองออนไลน์!


6

Python 3 , 25 ไบต์, 12.5 คะแนน

print(*map(ord,'ዏٗ*'))

ลองออนไลน์!

𩦦 (髒, ⿰馬葬), 𧨦 (謚, ⿰言⿱⿵八一皿) ราคา 4 ไบต์ แต่ U + 0657 มีราคาเพียง 2 ไบต์ ...


Python 3 , 29 ไบต์, 14.5 คะแนน

print(ord('𩦦')*ord('湡'))

ลองออนไลน์!

𩦦 (⿰馬葬) เป็นอักขระที่แตกต่างของ髒ซึ่งหมายถึง "สกปรก" 湡เป็นชื่อของแม่น้ำ และพวกมันก็ไม่เกี่ยวข้องกับคำถามนี้อย่างที่ฉันรู้


ฉันถามเกี่ยวกับกฎของตัวแยกและเราสามารถใช้ตัวคั่นแต่ละตัวที่ทำให้4815 162342ใช้ได้ ดังนั้นprint(*map(ord,'ዏ𧨦'))บันทึก 1.5 คะแนน :) ( print(*map(ord,'밗'))จะบันทึก 2 คะแนน แต่ถูกระบุว่าไม่ถูกต้อง)
Jonathan Allan


4

Java 8, คะแนน: 12 11.9 (70% จาก 17 ไบต์)

v->767*6277917L+3

คะแนน -0.1 ขอบคุณ@RickHitchcock @RickHitchcock

ลองออนไลน์

คำอธิบาย:

v->               // Method with empty unused parameter and long return-type
  767             //  767
     *6277917L    //  multiplied by 6277917 (as long)
              +3  //  And then 3 is added

คำตอบเก่าด้วยคะแนน: 12 (50% จาก 24 ไบต์):

v->(long)''*'Ⓥ'*'䧶'

มีอักขระที่ไม่สามารถพิมพ์0x1Bได้

ลองออนไลน์

คำอธิบาย:

v->                   // Method with empty unused parameter and long return-type
  (long)              //  Cast the character (and therefore the result) to a long
        ''            //  27
           *'Ⓥ'       //  Multiplied by 9419
                *'䧶'  //  Multiplied by 18934

ใน Java ตัวละครสามารถ autoboxed เป็นจำนวนเต็มที่เก็บค่ายูนิโค้ดไว้ แต่น่าเสียดายที่ Unicode สูงสุดที่สนับสนุนตัวละครเป็น65,535ดังนั้นฉันไม่สามารถใช้เพียงตัวละครสองตัวคูณ (ตั้งแต่ที่ใหญ่ที่สุดสองจำนวนที่แบ่งที่คาดว่าจะ4,815,162,342มี56,802และ84,771ที่84,771น่าเสียดายที่เกินจำนวนสูงสุด65,535.
นอกจากนี้ตั้งแต่ขนาดสูงสุดของintคือ 32 2 -1 ( 2,147,483,647) และผลลัพธ์4,815,162,342มีขนาดใหญ่กว่านั้นต้องใช้การส่งแบบชัดเจนlongซึ่งสามารถเก็บได้มากถึง 64 2 -1 ( 9,223,372,036,854,775,807)


คำตอบที่น่าเบื่อจะมีขนาด 14 ไบต์โดยไม่มีโบนัสใด ๆ :

v->4815162341L

ลองออนไลน์


1
ฉันชอบอันนี้
ค่อนข้าง

@ Emigna ขอบคุณ มันแย่มากที่มันต้องใช้การส่งlongและไม่สนับสนุนอักขระ Unicode ขนาดใหญ่มาก หากไม่มีข้อ จำกัด สองข้อดังกล่าวเพียงv->'𩦦'*'湡'(15 ไบต์คะแนน 7.5) ก็เพียงพอแล้ว แต่มันยังสั้นมากอย่างแน่นอน :) แม้ว่า Java ส่วนใหญ่จะมีหลายจุดอ่อนหลายประการในแง่ของ codegolfing (duhh .. ) การคำนวณด้วยตัวอักษรเพราะเราไม่ได้รับอนุญาตให้ใช้ตัวเลขเป็นหนึ่งในจุดแข็งของมัน ก็ยังมีประโยชน์สวยในคำตอบนี้ค่อนข้างคล้ายกันของเหมือง
Kevin Cruijssen

1
11.9 ไบต์: v->767*6277917L+3
Rick Hitchcock

3
@ RickHitchcock ไม่ใช่ทุกวันที่เราเห็นการประหยัด 0.1 ไบต์ ;)
Arnauld

@ RickHitchcock ขอบคุณ! และฉันเห็นด้วยกับความคิดเห็นของArnauldด้านบน : D
Kevin Cruijssen

4

R, 18x0.7 = 12.6 คะแนน

cat(9*2*267509019)

คำอธิบายของตัวเองค่อนข้างยุติธรรมแค่ใช้เลขคณิตบางอย่างเพื่อหลีกเลี่ยงตัวเลข


4

7 , 10 ไบต์, 27 ตัวอักษร

115160723426754314105574033

ลองออนไลน์!

การนำเสนอที่บรรจุของโปรแกรมนี้บนดิสก์คือ ( xxdรูปแบบ):

00000000: 269c 3a71 6f63 308b 7c0d                 &.:qoc0.|.

คำอธิบาย

เราเคยเห็นลำดับของตัวเลขนี้มาก่อนในAutomate Saving the Worldซึ่งเป็นเรื่องเกี่ยวกับการพิมพ์ตัวเลขตามช่วงเวลาปกติทำให้น่าสนใจผ่านการใช้ภาษาเก่ามาก ภาษาที่ใหม่กว่ามากสามารถมีการบิดของตัวเองที่ทำให้ความท้าทายนี้น่าสนใจ(ใช่ย่อหน้านี้และในความเป็นจริงเหตุผลที่ฉันเริ่มเขียนคำตอบนี้เป็นเพียงวิธีที่จะได้รับความท้าทายที่เกี่ยวข้องทั้งหมดเพื่อแสดงร่วมกันในแถบด้านข้างได้อย่างมีประสิทธิภาพโดยปกติผู้คนจะใช้ความคิดเห็น แต่ฉันไม่มีตัวแทนเพียงพอ .)

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

คำตอบคือ "ไม่มาก" ส่วนที่เป็นปัญหามากที่สุดคือหมายเลขที่สอง, 8. 7 โปรแกรมเขียนเป็นเลขฐานแปด ไม่มีหมายเลขดังกล่าวเป็น 8 ดังนั้นจุดเริ่มต้นของสตริงจะต้องถูกพิมพ์แตกต่างกัน

ฐานของโปรแกรมจึงขึ้นอยู่กับโปรแกรม 7 "Hello world":

5431410557403
543141055          string literal
         7         separate data from code
          4        rearrange stack: {program's source}, empty element, {literal}
           0       escape {the literal}, appending it to {the empty element}
            3      output {the escaped literal}, pop {the program's source}

ด้วยการหลีกเลี่ยงการเป็นตัวอักษรในภาษาเฉพาะโดเมนที่ตีความดังนี้:

5                  output format: US-TTY using pairs of digits in the string
 43                select character set: digits and common symbols
   14              "4"
     10            "8"
       55          forget the set output format

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

{77}115160723426
 7                 empty stack element
  7 11516          append "1151"
         0         append "6"
          723246   append "2324"

ที่ผลิตตามตัวอักษรต่อไปนี้:

115162324
1                  set output format: literally as octal
 15162324          "15162324"

ซึ่งได้รับการพิมพ์ออกมา


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

@ โจกิ้ง: มันเป็นแรงบันดาลใจให้ฉันโพสต์คำตอบสำหรับคำถามนี้และมันกลับกลายเป็นว่าน่าสนใจกว่าที่ฉันคาดไว้มาก ดังนั้นฉันจึงเดาว่านี่เป็นหลักฐานเพิ่มเติมสำหรับสมมติฐานของฉันที่ว่าหากคุณไม่ได้หาชื่อเสียงการมีส่วนร่วมของคุณจะเป็นประโยชน์ต่อไซต์มากกว่าที่อื่น (ที่จริงแล้วความยุ่งยากที่สำคัญที่ฉันมีกับการติดอยู่อย่างถาวรที่ 11 ชื่อเสียงเป็นที่ฉันไม่สามารถแนะนำให้แก้ไขใน Meta หมายความว่าถ้าผมเห็นข้อมูลที่ผิดมีฉันมีวิธีที่จะแก้ไขให้ถูกต้องไม่มี.)
ais523


3

แหล่งที่มาแอสเซมบลี MASM 8088 (93 ไบต์ - 50%) = 46.5 ไบต์

การใช้หมายเลขหรือลำดับในแหล่งที่มา:

MOV AH,'P'-'G'
LEA DX,L
INT '!'
RET
T EQU '-'-'+'
L DW 'ph'/T,'jb'/T,'lb'/T,'fd'/T,'dh'/T,'$'

เอาท์พุท:

A>LOST.COM
4815162342

2

Charcoal , 13 bytes / 2 = 6.5

IETPIHA.⁻⁸⁸℅ι

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด ทำงานโดยการลบรหัส ASCII ของสตริงTPIHA.จาก 88 และการคัดเลือกนักแสดง


2

Aheui (esotope) , 45 ไบต์ (15 ตัวอักษร) * 0.5 = 22.5 คะแนน

반밤밪박밭빠따받발따밣뱣히망어

ลองออนไลน์!


คำอธิบาย:

ดูสิ่งนี้ด้วย; Aheui Reference ( ภาษาอังกฤษ )

Aheui program starts with default stack '아'(or none)

반: push 2, move cursor right by 1(→).
밤: push 4, →
밪: push 3, →
박: push 2, →
밭: push 4, →
빠: dup, →
따: pop 2, push mul result(16).
받: push 3, →
발: push 5, →
따: pop 2, push mul result(15).
밣: push 8, →
뱣: push 4, move cursor right by 2(→→).
히: end.
망: pop 1, print, → (if stack is empty, move cursor left by 1.)
어: move cursor left by 1(←).

โปรดทราบว่าㅁ (คำสั่งการพิมพ์) เลื่อนเคอร์เซอร์ไปตามทิศทางย้อนกลับหากสแต็ก (หรือคิว) ว่างเปล่า





1

JavaScript, 143 ไบต์ (ไม่แน่ใจว่าจะให้คะแนนอย่างไร)

(g=`${2*2}`)=>g.repeat(6).replace(/(.)/g,(m,p,i,k='')=>
  (k=m*[g-3,g-2,g,g,+g+2,g*3-1][i]
  ,RegExp(`${g-2}|${g}`).test(i)?k-1:i==+g+1?k-(g/2):k))

ลองออนไลน์!

เริ่มต้นด้วยหก4คูณเพิ่มลบด้วยจาก4ไปหาผลลัพธ์


2
ตกลงคุณกำลังพยายามรับโบนัส แต่ด้วยรหัสขนาดนี้มันไม่ได้ชดเชย ทำไมไม่เพียง '4815162342'
Eduardo Hoefel

@EduardoHoefel อย่ารวบรวมระบบ "คะแนน" หรือ "โบนัส" ไม่ได้พยายามรับโบนัสเพียงแค่พยายามที่จะไม่ใช้ตัวเลขใด ๆ ที่จำเป็นในการส่งออก รหัสเอาท์พุทตัวเลขโดยไม่ต้องฮาร์ดโค้ดใด ๆ สามารถใช้ตัวเลข4พร้อมการบวกการลบการคูณและดัชนีของตัวเลข4ภายในสตริง (หรืออาร์เรย์) เพื่อให้ได้ตัวเลขที่ต้องการ
guest271314

คะแนนของคุณคือ143*0.7=100.1
Jo King

1

PHP, 35/2 = 17.5

<?=zzzzzzzzzzzzzzz^NVBVKOVKLVHIVNH;

แนวทางดิจิตอล: 40 * .7 = 28

<?=2+2,_,5+3,_,17-2,_,17-1,_,17+6,_,7*6;

ไม่มีตัวเลขไม่มีสตริง: 68/2 = 34

<?=$p++,!$p++,$p+=$p,_,$p+=$p,_,~-$q=$p+$p,_,$q,_,--$p+$q,_,$p*~-$p;

ลองพวกเขาออนไลน์


1
หรือเพียง 14 ไบต์สำหรับ<?=4815162342;
Jo King

1
OP ไม่ตอบกลับว่าเราสามารถละเว้นตัวคั่นได้หรือไม่ แต่ใช่ ทำไมไม่เพียง 10 4815162342ไบต์: หรือ<?=~+ 10 unprintables -> 15/2 = 7.5
Titus

1

JavaScript (SpiderMonkey), 67 ไบต์ / 2 = 33.5 60 ไบต์ / 2 = 30 58 ไบต์ / 2 = 29 48 ไบต์ / 2 = 24

-7 bytes / 3.5 , -2 bytes / 1มารยาทของ @JoKing, -10 ไบต์ / 5มารยาทของ @tsh

print(a=-~-~-~-~[],a+=a,b=a+~-a,a+a,a+b,--b+b+b)

ลองออนไลน์!


1
print(a=-~-~-~-~[],a+=a,b=a+~-a,a+a,a+b,--b+b+b)
tsh

2
หรือเพียงแค่print(4815162342)17 ไบต์
Jo King



1

ช่องว่างคะแนน: 49 41 bytes / 2 = 20.5

[S S S T    S S S T T   T   T   T   S S S S S S S T T   S S S T S T T   T   T   T   S S T   T   S N
_Push_4815162342][T N
S T _Print_number]

เพิ่มตัวอักษรS(ช่องว่าง), T(แท็บ) และN(บรรทัดใหม่) เป็นการเน้นเท่านั้น
[..._some_action]เพิ่มเป็นคำอธิบายเท่านั้น

ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)

หลอกรหัส:

Integer i = 4815162342
Print i as number to STDOUT

คำอธิบาย:

ในช่องว่างตัวเลขจะถูกผลักดังนี้:

  • S: เปิดใช้งานการจัดการสแต็ก
  • S: กดหมายเลข
  • S/ T: บวก / ลบตามลำดับ
  • บางส่วนT/ Sตามด้วยซิงเกิ้ลN: ทศนิยมเป็นเลขฐานสองโดยที่T 1 และSเป็น 0

หลังจากนั้นก็พิมพ์ด้วย TNST :

  • TN: เปิดใช้งาน I / O
  • S: เอาต์พุตด้านบนของสแต็ก
  • T: ตามจำนวน

เพียงแค่กดจำนวนตัวเองนานกว่าการเพิ่มทวีคูณและผลักจำนวนเต็มคำสั่ง?
Jo King

@ โจกิ้งฉันมักจะใช้คอมไพเลอร์ vii5ard Whitespace ออนไลน์เพราะมันมีการเน้นและแสดงคำสั่งทางด้านซ้าย แต่เห็นได้ชัดว่ามันทำงานคล้ายกับจำนวนเต็มของจาวาในจำนวนสูงสุดคือ 32- บิตและล้อมรอบไปทางลบด้านบนว่า .. ดังนั้นจำนวนนั้นจึงใหญ่เกินไปที่จะผลักในครั้งเดียว เมื่อฉันกดหมายเลขในTIOมันก็ใช้ได้ดีตอนนี้ฉันก็รู้แล้ว
Kevin Cruijssen

1

F #, 45 ไบต์ = 22.5 คะแนน

เพียงแค่วนรอบการทำงานของโรงสีforที่พิมพ์ตัวเลข:

for c in"DHOPWj"do printf"%d"(int c-int '@')

ข้างต้นเป็นโปรแกรมที่สมบูรณ์ที่สามารถรวบรวมเป็นปฏิบัติการ

ใน REPL (read-eval-print loop) เช่น FSI (F # Interactive) รุ่นที่สั้นกว่าต่อไปนี้จะใช้งานได้เนื่องจาก REPL จะแสดงผลลัพธ์ของนิพจน์ที่ประเมิน มี 35 ไบต์ = 17.5 คะแนน:

[for c in"DHOPWj"->int c-int '@'];;

1

Pyke 3 คะแนน

77 91 f8 86 98 06

ลองที่นี่!

สัญญาณไบต์แรกที่อ่านในฐาน 128 จนกว่าจะมีการตั้งค่าไบต์ที่ไม่มีบิตสูง

ในที่สุด 32 จะถูกลบออกจากผลลัพธ์ (เพื่อเหตุผลทางประวัติศาสตร์)

สิ่งนี้ทำให้เกิดการสร้างจำนวนมากในพื้นที่ขนาดเล็กมาก


1

MathGolf , 7 ไบต์ * 0.5 = 3.5

ÿ≤┼ÇÅ$∞

ลองออนไลน์!

คำอธิบาย

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

ÿ≤┼ÇÅ     Push "≤┼ÇÅ"
     $    pop(a), push ord(a) (pushes 2407581171)
      ∞   pop a, push 2*a

ฉันใช้ข้อเท็จจริงที่ว่า MathGolf มีตัวอักษร 1 ไบต์สำหรับสร้างสตริงที่มีความยาวสูงสุด 4 ถ้าฉันต้องการแปลงจำนวนทั้งหมดจากสตริงฐาน 256 ฉันจะต้องใช้สองตัว"และสตริงจะเท่ากับ5 ตัวละคร ด้วยวิธีนี้ฉันบันทึก 2 ไบต์ แต่ฉันเสียหนึ่งไบต์ด้วยการเพิ่มตัวดำเนินการสองเท่าในตอนท้าย





1

Befunge-98 (FBBI) , 15 ไบต์ / 2 = 7.5 คะแนน

"*H/!k-"*.*+..@

ลองออนไลน์!

คำอธิบาย:

ขั้นแรกให้กดค่า ASCII ของอักขระ '* + H /! k- (42, 72, 47, 33, 107, 45) ตามลำดับนี้ไปยังสแต็ก จากนั้นคำนวณ4815=45107 และ 1623=3347+72และเอาท์พุท

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