พรไอริชเก่า


14

ฉันไม่รู้ว่าใครเป็นคนสร้างคำเหล่านี้และฉันไม่ใช่ชาวไอริช แต่ฉันให้พรแก่ชาวไอริช:

May the road rise up to meet you
May the wind be always at your back
May the sun shine warm upon your face
The rains fall soft upon your fields
And until we meet again
May God hold you in the hollow of His hand

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

กฎ:

  • ผลิตข้อความข้างต้นอย่างแน่นอน
    (รู้สึกอิสระที่จะทำลายกฎนี้เพื่อความฉลาดและความสนุก)
  • โปรแกรมจะต้องสร้างข้อความด้วยตนเอง catไม่ใช่ทางออกที่ถูกต้อง
  • ทางออกที่มีตัวละครน้อยที่สุด "ชนะ"

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

ขอให้โชคดีของชาวไอริชทำให้คุณมีกำลังใจ

คำตอบ:


2

05AB1E , 117 ไบต์

'€¿“‡âŽÓ€î€†€€èÊ€‚“„€Ë‡´).ªðý“€¿€€†â£ƒ€¾€„‰Ã€î““€¿€€ïë€ï‡Š€›€ž‚ƒ““€¿€€‡µã»©ÃˆÉ€žŠÑ““€€¥·sŽ§š¼ˆÉ€ž™æ““€ƒ‡æ€¦‰Ã†î“).ªÀ»

ลองออนไลน์!

'€¿                 "may"
“‡âŽÓ€î€†€€èÊ€‚“    "god hold you in the hollow of"
„€Ë‡´               "his hand"
)                   push stack into a list
.ª                  sentence-case each
ðý                  and join by spaces
“€¿€€†â£ƒ€¾€„‰Ã€î“  "may the road rise up to meet you"
“€¿€€ïë€ï‡Š€›€ž‚ƒ“  "may the wind be always at your back"
“€¿€€‡µã»©ÃˆÉ€žŠÑ“  "may the sun shine warm upon your face"
“€€¥·sŽ§š¼ˆÉ€ž™æ“   "the rains fall soft upon your fields
“€ƒ‡æ€¦‰Ã†î“        "and until we meet again"
)                   push stack into a list
.ª                  sentence-case each
À                   rotate list left
»                   join by newlines
                    implicitly print

14

Python 143 ตัวอักษร

#coding:u8
print u'慍⁹桴⁥潲摡爠獩⁥灵琠敭瑥礠畯䴊祡琠敨眠湩⁤敢愠睬祡⁳瑡礠畯⁲慢正䴊祡琠敨猠湵猠楨敮眠牡灵湯礠畯⁲慦散吊敨爠楡獮映污潳瑦甠潰潹牵映敩摬ੳ湁⁤湵楴敷洠敥⁴条楡੮慍⁹潇⁤潨摬礠畯椠桴⁥潨汬睯漠⁦楈⁳慨摮'.encode("u16")[2:]

ทำงานที่ codepad.org


8

Haskell, 179 ตัวอักษร

e="\n "++['='..'z']++e;i r=[e!!div r 64,e!!r]
main=putStr$i.fromEnum=<<"뒦뾁빭몁뷴릩끷뮸몁뺵끹봁벪몹끾봺뀒릾끹뭪끼뮳멁맪끦뱼릾븁릹끾봺뷁맦먰뀒릾끹뭪끸뺳끸뭮볪끼릷벁뺵봳끾봺뷁뫦먪뀙뭪끷릮본끫릱뱁븴뫹끺뵴볁뾴뺷끫뮪뱩븀놳멁뺳빮뱁뼪끲몪빁리릮변뒦뾁댴멁뭴뱩끾봺끮볁빭몁뭴뱱봼끴뫁덮븁뭦볩뀀"

วิธีนี้ใช้ประโยชน์จากความผูกพันที่พบบ่อยระหว่างชาวไอริชและชาวเกาหลี คุณรู้ไหมว่าการปักลูกไม้และมันฝรั่งมาจากเกาหลีและกิมจินั้นถูกสร้างขึ้นครั้งแรกในดับลิน ... ใช่ไหม?


  • แก้ไข: (197 -> 184) ไม่จำเป็นต้องmod(ทำไม⁈ :-)); ตัดการประกาศแยกต่างหากสำหรับข้อความภาษาเกาหลี
  • แก้ไข: (184 -> 179) ใช้คอมแพคมากขึ้นเพื่อเป็นตัวแทนของรหัสหนังสือ

ฮ่าฮ่าฮ่าดี! นั่นเป็นสาเหตุที่ฉันมักจะระมัดระวังในการพูดว่า "วิธีแก้ปัญหากับตัวละครน้อยที่สุด" (ฉันแก้ไขโพสต์ของฉันตาม) การหาประโยชน์ Unicode เป็นตัวเลือกเสมอ แต่มีเพียงไม่กี่คนที่รับไป
Joey Adams

เป็นไปไม่ได้ที่จะนำสามตัวอักษรสี่ตัวของเรามารวมกันเพื่อหาช่องทางนี้?
FUZxxl

@FUZxxl: คุณต้องระวัง: ไม่สามารถใช้ค่าทั้งหมดในช่วง 0x0 ~ 0x10FFFF ได้ บางอย่างถูกห้ามทันที (ตัวอย่างเช่น 0xD800 ~ 0xDFFF และค่าใด ๆ ที่ลงท้ายด้วย FFFE หรือ FFFF) ส่วนอื่น ๆ อาจจะใช่หรือไม่ใช่กฎหมายในคำนิยามของภาษาโปรแกรมที่ให้ไว้ ฉันเลือกฮันกึลที่นี่เพราะมันเป็นบล็อกที่มีค่าขนาดใหญ่โดยไม่มีรูและทุกอย่างถูกต้องตามกฎหมายในนิยามของสตริง Unicode แต่มันมีขนาดเพียง 13 บิตเท่านั้น
MtnViewMark

MtnViewMark: ถ้าคุณมีตัวแทนอุ้มท้องสองตัวติดต่อกันมันจะใช้ได้จริงและจะเป็น codepoint ตัวเดียวนอก BMP ที่จะต้องมีการดำเนินการที่ใช้ UTF-16 และสามารถลดความต้องการของตัวละครของคุณโดยหนึ่ง;)
โจอี้

@Joey - คุณสามารถใช้ตัวแทนได้เฉพาะเมื่อมีการจับคู่ทุกลักษณะและในลำดับที่เหมาะสม (หนึ่งจาก 0xD800 ~ 0xDBFF และถัดไปจาก 0xDC00 ~ 0xDFFF) แต่ในกรณีของ Haskell คือ moot: Stringคือลำดับของค่า unicode scalar (U + 0000 ~ U + D7FF & U + E000 ~ U + 10FFFF) ไม่ใช่หน่วยรหัส UTF-16 โปรดทราบว่าfromEnumส่งคืนค่าสเกลาร์จุดโค้ดของตัวละครไม่ใช่ค่าที่เข้ารหัสบางส่วน
MtnViewMark

4

INTERCALL , 3421 ไบต์

ทางออกที่ง่าย สร้างโดยอัตโนมัติหากใครสงสัย ...

INTERCALL IS A ANTIGOLFING LANGUAGE
SO THIS HEADER IS HERE TO PREVENT GOLFING IN INTERCALL
THE PROGRAM STARTS HERE:
PUSH LXXVII
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXIV
PRINT
PUSH CXI
PRINT
PUSH XCVII
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH CXIV
PRINT
PUSH CV
PRINT
PUSH CXV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXVII
PRINT
PUSH CXII
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CXI
PRINT
PUSH XXXII
PRINT
PUSH CIX
PRINT
PUSH CI
PRINT
PUSH CI
PRINT
PUSH CXVI
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH X
PRINT
PUSH LXXVII
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXIX
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH XCVIII
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH XCVII
PRINT
PUSH CVIII
PRINT
PUSH CXIX
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH CXV
PRINT
PUSH XXXII
PRINT
PUSH XCVII
PRINT
PUSH CXVI
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH CXIV
PRINT
PUSH XXXII
PRINT
PUSH XCVIII
PRINT
PUSH XCVII
PRINT
PUSH XCIX
PRINT
PUSH CVII
PRINT
PUSH X
PRINT
PUSH LXXVII
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXV
PRINT
PUSH CXVII
PRINT
PUSH CX
PRINT
PUSH XXXII
PRINT
PUSH CXV
PRINT
PUSH CIV
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXIX
PRINT
PUSH XCVII
PRINT
PUSH CXIV
PRINT
PUSH CIX
PRINT
PUSH XXXII
PRINT
PUSH CXVII
PRINT
PUSH CXII
PRINT
PUSH CXI
PRINT
PUSH CX
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH CXIV
PRINT
PUSH XXXII
PRINT
PUSH CII
PRINT
PUSH XCVII
PRINT
PUSH XCIX
PRINT
PUSH CI
PRINT
PUSH X
PRINT
PUSH LXXXIV
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CXIV
PRINT
PUSH XCVII
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH CXV
PRINT
PUSH XXXII
PRINT
PUSH CII
PRINT
PUSH XCVII
PRINT
PUSH CVIII
PRINT
PUSH CVIII
PRINT
PUSH XXXII
PRINT
PUSH CXV
PRINT
PUSH CXI
PRINT
PUSH CII
PRINT
PUSH CXVI
PRINT
PUSH XXXII
PRINT
PUSH CXVII
PRINT
PUSH CXII
PRINT
PUSH CXI
PRINT
PUSH CX
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH CXIV
PRINT
PUSH XXXII
PRINT
PUSH CII
PRINT
PUSH CV
PRINT
PUSH CI
PRINT
PUSH CVIII
PRINT
PUSH C
PRINT
PUSH CXV
PRINT
PUSH X
PRINT
PUSH LXV
PRINT
PUSH CX
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH CXVII
PRINT
PUSH CX
PRINT
PUSH CXVI
PRINT
PUSH CV
PRINT
PUSH CVIII
PRINT
PUSH XXXII
PRINT
PUSH CXIX
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CIX
PRINT
PUSH CI
PRINT
PUSH CI
PRINT
PUSH CXVI
PRINT
PUSH XXXII
PRINT
PUSH XCVII
PRINT
PUSH CIII
PRINT
PUSH XCVII
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH X
PRINT
PUSH LXXVII
PRINT
PUSH XCVII
PRINT
PUSH CXXI
PRINT
PUSH XXXII
PRINT
PUSH LXXI
PRINT
PUSH CXI
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH CIV
PRINT
PUSH CXI
PRINT
PUSH CVIII
PRINT
PUSH C
PRINT
PUSH XXXII
PRINT
PUSH CXXI
PRINT
PUSH CXI
PRINT
PUSH CXVII
PRINT
PUSH XXXII
PRINT
PUSH CV
PRINT
PUSH CX
PRINT
PUSH XXXII
PRINT
PUSH CXVI
PRINT
PUSH CIV
PRINT
PUSH CI
PRINT
PUSH XXXII
PRINT
PUSH CIV
PRINT
PUSH CXI
PRINT
PUSH CVIII
PRINT
PUSH CVIII
PRINT
PUSH CXI
PRINT
PUSH CXIX
PRINT
PUSH XXXII
PRINT
PUSH CXI
PRINT
PUSH CII
PRINT
PUSH XXXII
PRINT
PUSH LXXII
PRINT
PUSH CV
PRINT
PUSH CXV
PRINT
PUSH XXXII
PRINT
PUSH CIV
PRINT
PUSH XCVII
PRINT
PUSH CX
PRINT
PUSH C
PRINT
END

ว้าว


3

GolfScript (204 ตัวอักษร)

มีอักขระที่ไม่ได้พิมพ์ดังนั้นการวางสำเนาอาจไม่ทำงาน:

:k'May the road rise up to meet you
wind be always ar back¢ sun shin¬armÈon€face
Tåainsll soft¡ields
Aäuntil we meet ag²áGod holdø inñlow of His hand'{k{{k$}*0:k;}{127.2$<{-:k}*;}if}/](+

การเข้ารหัส Base64:

OmsnTWF5IHRoZSByb2FkIHJpc2UgdXAgdG8gbWVldCB5b3UKnwh3aW5kIGJlIGFsd2F5cyBhnAVy
IGJhY2uiCXN1biBzaGlurANhcm3IA29upAZmYWNlClTlBGFpbnONA2xsIHNvZnShDGllbGRzCkHk
A3VudGlsIHdlIG1lZXQgYWeyA+EFR29kIGhvbGT4BCBpbvEFjgNsb3cgb2YgSGlzIGhhbmQne2t7
e2skfSowOms7fXsxMjcuMiQ8ey06a30qO31pZn0vXSgr

มีความซ้ำซ้อนน้อยกว่าที่คุณคาดหวังในสตริง ฉันคิดว่าเงินออมของ gzip คือ 2/3 จาก Lempel-Ziv และ 1/3 จากการเข้ารหัส Huffman สิ่งที่ฉันใช้เป็นหลัก LZ แต่ฉันมีค่าใช้จ่ายมากกว่ารูปแบบ gzip

โปรดทราบว่านี่เป็นโซลูชั่นแรกที่ใช้ไบต์น้อยกว่าเอาต์พุต


2

Bash / Sed, 206 ตัวอักษร

ฉันไม่สามารถเอาชนะ Peter Taylor ได้ แต่เช่นเดียวกับวิธีแก้ปัญหาของเขามันมีจำนวนไบต์น้อยกว่าต้นฉบับ แต่ฉันไม่ได้ใช้อักขระที่ไม่สามารถพิมพ์ได้
sedมีประโยชน์ในการท้าทาย"ไม่มีคนแปลกหน้ากับ codegolf"ที่คล้ายกัน แต่ฉันใช้มันสองครั้งเพื่อบีบอัดรายการของการแทนที่ ที่นี่ข้อความสั้นเกินไปสำหรับเคล็ดลับนี้

sed 's/Z/May the /;s/W/ uponYr f/;s/Y/ you/'<<X
Zroad rise up to meetY
Zwind be always atYr back
Zsun shine warmWace
The rains fall softWields
And until we meet again
May God holdY in the hollow of His hand

2

PHP, 431 425 ไบต์

<?php $s="May therodisupm\nwnblckfTAgGH";$p=array('01234563','3cd8h328c73m','jj','3e6643');$b=str_split('s781937ab63cd348v28cfsgah93i631jg12b314328c73i1klfsbch3b5ah63g17et1k6fn56371ahb3m1u3b8m4ta6j9bfoh93ch4aj3g6v1p1ahf0123q89358j9328c3ah3456358u8g38m3rab351h9');foreach($b as $x){$x=b($x);if($x>27){$c=str_split($p[$x-28]);foreach($c as $y){echo $s[b($y)];}}else{echo $s[$x];}}function b($a){return base_convert($a,36,10);}

วิธีการแมปและการแปลงฐานเพื่อจัดเก็บข้อมูล อย่างไรก็ตามฉันไม่สามารถรักษาขนาดโปรแกรมให้เล็กมากได้


1

Haskell - 284

s n=words"And God His May The again always at back be face fall fields hand hold hollow in meet of rains rise road shine soft sun the to until up upon warm we wind you your"!!(fromEnum n-48)
main=mapM_(putStrLn.unwords.map s)$words"3IEDLJAQ 3IP967R8 3IHFNMR: 4C;GMR< 0KOA5 31>Q@I?B2="

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


1

Quetzalcoatl , 218 ไบต์

"May the road rise up to meet you\nMay the wind be always at your back\nMay the sun shine warm upon your face\nThe rains fall soft upon your fields\nAnd until we meet again\nMay God hold you in the hollow of His hand"

สตริงจะถูกพิมพ์โดยปริยาย

หรือ pyth, 217 ไบต์

"May the road rise up to meet you\nMay the wind be always at your back\nMay the sun shine warm upon your face\nThe rains fall soft upon your fields\nAnd until we meet again\nMay God hold you in the hollow of His hand

1

ถัง 175 ตัวอักษร

‘3p‘®m‘00‘®t¶©m  ©t  2½;4•;up to 2m;you\n©m  ©t  2⬩;be 0Ȧ;at 0B;0∞;\n©m  ©t  sun kƝ;4Ȧ;0M;0B;0Ƚ;\nThe A④;2÷;4l;0M;0B;8R;\nAnd 0🄄;we 2m;0¡;\n©m  God 1④;you in ©t  dɅ;of His 0║;

ขอบคุณพระเจ้าคำพูดยาว ๆ ทั้งหมดอยู่ในพจนานุกรมของถัง เพียงใช้การบีบอัดสตริงเพื่อลดความยาว

TIO ไม่ทำงานเนื่องจากจำเป็นต้องได้รับการอัปเดต

ลองออนไลน์!


0

นกกระจิบ , 248 ไบต์

การนำนี้วิธีการ

System.print("Zroad rise up to meetY\nZwind be always atYr back\nZsun shine warmWace\nThe rains fall softWields\nAnd until we meet again\nMay God holdY in the hollow of His hand".replace("Z","May the ").replace("W"," uponYr f").replace("Y"," you"))

ลองออนไลน์!

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