การพิมพ์จากน้อยไปมาก ASCII, โจร


13

นี่คือเธรดของโจร ด้ายตำรวจที่นี่

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

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

ผู้ชนะของเธรดโจรจะเป็นผู้ใช้ที่ถอดรหัสข้อมูลที่ส่งมากที่สุดภายในวันที่ 7 มกราคม 2016 หากมีการเสมอกันผู้ใช้ที่ทำการถอดรหัสที่ส่งด้วยรหัสรวมที่ยาวที่สุดจะเป็นผู้ชนะ

การส่งควรมีรูปแบบดังนี้:

ภาษา, อักขระ nn (รวมถึงลิงก์ที่จะตอบ) ชื่อผู้ใช้ของ Cop

รหัส:

alphaprinter

เอาท์พุต

abcdefghijklmnopqrstuvwxyz

คำอธิบายและความคิดเห็นเพิ่มเติม

ลีดเดอร์บอร์ด:

ชัยชนะที่อัดแน่นของ Adnan !

Adnan: 7
Pietu1998: 3
Mitch Schwartz: 2
Quintopia: 2
Martin Büttner: 2
cat: 1
Dennis: 1
insertusernamehere: 1
isaacg: 1
jimmy23013: 1
MegaTom: 1
plannapus: 1
user81655: 1

คำตอบ:


7

Python 2, 76 ตัวอักษร, wnnmaw

รหัสรุ่นที่สับสนด้านล่าง:

print "BKT]f"#__h______________________v_____________,___)_________)_______)
print __________h______________________v_____________,___)_________)_______)

ผลลัพธ์BKT]fนี้ ไม่ใช่รุ่นที่ตั้งใจเลยฮ่าฮ่าแน่นอน

ทดสอบที่นี่


1
ความคิดเห็นส่อเสียด :)
wnnmaw

1
นั่นจะสอนให้คุณโพสต์โปรแกรมที่มีเอาต์พุตสั้นกว่าความยาวของโปรแกรมในภาษาที่มีprintเว้นแต่ว่าคุณได้เปิดเผยตัวละครในสถานที่ที่สตริงต้องนั่ง
quintopia

7

Brainfuck, 48 ไบต์, Adnan

++++[>++++[>++++<-]<-]+++[>++++++++<-]>++[>+.<-]

ค่อนข้างตรงไปตรงมาสร้าง 64 แล้ว 26 มันอาจจะเป็นปลาเฮอริ่งแดงเล็กน้อย

++++[>++++[>++++<-]<-]>>+

เป็นวิธีรับ 65 ดังนั้นคุณอาจลองทำบางสิ่งเช่น

++++[>++++[>++++<-]<-]>>+[>+++++>++<<-----]>>[<.+>-]

ก่อนที่จะสังเกตเห็นว่ามันเป็นจุดจบ


Ahhh ทำได้ดีมาก :)
Adnan




4

JavaScript (ES6), 17 ตัวอักษร, Neil

ในขณะที่ OP โพสต์ฟังก์ชั่นนี่เป็นวิธีแก้ปัญหาโดยใช้ฟังก์ชั่น:

()=>xxx=11000+233
__=____=_________

ฟังก์ชั่นที่ไม่ระบุชื่อสามารถเรียกเช่น:

(()=>xxx=11000+233)();

วิธีแก้ปัญหาไร้สาระที่ฉันมีในตอนแรก:

xx=yyyy=z=11230+3
__=____=_________

11233เมื่อทำงานในคอนโซลจะพิมพ์จำนวน


2
ฉันต้องการนินจา ฉันได้รับfx=asdf=> "11233"
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴคิดว่าฉันจะต้องอดอาหารอย่างนี้ : D
แทรกชื่อที่นี่

1
ขอชื่นชมคุณด้วยปืนที่เร็วที่สุดของคุณทางตะวันตก +1
Conor O'Brien

-1 สำหรับไม่มีสตริง: P
ev3commander

1
เวอร์ชันของ @ CᴏɴᴏʀO'Bʀɪᴇɴดูเหมือนจะเป็นเพียงฟังก์ชันเดียวที่ส่งคืนสตริง
Neil

4

PHP, 28 ตัวอักษร, Niet the Dark Absolute

ฉันพบหลายรุ่นสำหรับงานนี้:

รุ่นเดิม:

<?=@implode(range('a','z'));

รุ่นของฉัน:

<?=join('',range('a', 'z'));

เวอร์ชั่น 23 ตัวอักษร:

<?=join('',range(a,z));

รุ่น 26 ตัวอักษร:

<?=implode('',range(a,z));

แน่นอนคุณสามารถเพิ่ม whitespaces หลายรายการเพื่อไปที่เครื่องหมาย 28 ตัวอักษร

ทดสอบที่นี่


แดงคุณเอาชนะฉัน: P ฉันทำได้เร็วที่สุด:<?=join(range(a,z));
LegionMammal978

คุณได้รับฉัน - บางทีฉันควรจะเข้มงวดมากขึ้นด้วยการใส่ตัวอักษรชื่อฟังก์ชั่นหนึ่งตัวเป็นตัวละครที่เปิดเผย ... อย่างไรก็ตามสำหรับบันทึกแล้วนี่เป็นต้นฉบับ:<?=@implode(range('a','z'));
Niet the Dark Absolut

4

Jolf, 27 ตัวอักษร, CᴏɴᴏʀO'Bʀɪᴇɴ

หลังจากลองผิดลองถูกสองสามชั่วโมงฉันเข้าใจแล้วฮ่าฮ่า:

on-pl'u'Wa-n"vwxyz"`--'01_2

รวมถึงรหัสที่สับสน:

on-pl'u'Wa-n"vwxyz"`--'01_2
________W___________--_____
                         |

ลองที่นี่ ( ขั้นตอนการรันดูเหมือนจะเป็นการแจ้งเตือนเดียวที่ทำงานได้)


คำอธิบาย

สิ่งแรกที่ฉันติดอยู่คือตำแหน่งของลูปในขณะนั้น ฉันไม่ได้ไปถูกที่แล้วฮ่าฮ่า หลังจากทำให้ถูกต้องสิ่งที่สองที่ฉันสังเกตคือตำแหน่งของขีดล่าง ฉันคิดว่าฉันเกือบจะได้มันจนกระทั่งฉันติดอยู่ที่ขีดล่าง (gg CᴏɴᴏʀO'Bʀɪᴇɴ)

นี่คือคำอธิบายแบบเต็มของรหัส:

on-pl'u'Wa-n"vwxyz"`--'01_2

o                           # assign
 n                          # n / standard variable
   pl                       # pl = "abcdefghijklmnopqrstuvwxyz"
  -  'u                     # pl - "u" = "abcdefghijklmnopqrstvwxyz"
       'W                   # a string in the middle doing nothing
          -n"vwxyz"         # n - "vwxyz"
         a                  # alert(
                   `        # is an extra semicolon
                     -'01   # "0" - 1
                    -    _2 # ("0" - 1) - negative 2

ใน pseudocode:

n = minus("abcdefghijklmnopqrstuvwxyz", "u");
"W";
alert(minus(n,"vwxyz"));
;
minus(minus("0", 1), negative(2));

ฉันสนใจที่จะดูว่าทางออกที่แท้จริงคืออะไร :)


1
พระมารดาของพระเจ้าไม่ใช่สิ่งที่ฉันตั้งใจไว้ o______o แต่เป็นงานที่ดี แต่อย่างใด! ฉันโพสต์รหัสจริงในคำตอบของฉัน
Conor O'Brien




4

Python 3, 58 ไบต์, Mathias Ettinger

import string;print(''.join(sorted(string.printable))[5:])

การใช้งานโมดูลสตริงพื้นฐาน


ฉันไม่เห็นว่าคุณจะแตกมันมาก่อนฉันพยายามใช้stringแต่ไม่คิดว่าจะใช้sorted(เพราะฉันลืมมันไป) ฉันไม่รู้ว่าฉันควรจะเลิกเพราะมันไม่มีวิธีใกล้เคียงกัน แต่มันใช้งานได้
แมว

2
@cat ฉันไม่รู้ว่าความคิดเห็นของ Stewie Griffin จะเป็นอย่างไร แต่ฉันให้ +1 กับคุณและคิดว่ามันเหมาะสมที่จะตอบคำถามของคุณเพราะมันไม่ใช่คำตอบเดียวกับฉัน
Mitch Schwartz

4

05AB1E, 13 ตัวอักษร, Adnan

รหัส (และโค้ดเปล่า):

1TD*<F3<*}bRJ
__D____<_____

เอาท์พุท:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

คำอธิบาย:

1                       Push 1
 TD*<                   Push 99
     F   }              For loop
      3<*               multiply top of stack by 3-1 (e.g. double it)
          b             convert to list of binary digits (note we have just computed 2^99)
           R            reverse it
            J           join it into a string.
                        (top of stack implicitly printed)

Woooww !! งานที่ยอดเยี่ยม :)
Adnan


3

JavaScript (ES6), 60 ตัวอักษร, แทรกชื่อผู้ใช้ที่นี่

รหัส:

e=e=>{try{a}catch(e){return[...e.toString()].sort().join``}}
e_e_______a__a____e___e________e__o___________o______o______

ผลผลิต (ใน Chrome):

    :ERacddeeeeeeffiinnnoorrrrst

ฉันรู้สิ่งนี้ในทันทีเพราะฉันกำลังจะทำสิ่งเดียวกัน! xD


นิสัยดี - ตัวละครต่อตัวละคร : D
insertusernamehere

1
@insertusername ที่นี่คุณสามารถ[...e+'']ทำให้สั้นลงได้เล็กน้อย นั่นทำให้ฉันเริ่มต้น ;)
user81655

สิ่งที่ไม่return[...e.toString()]จริงทำอย่างไร ฉันรู้แค่ lil JS ...
แมว

3
@cat มันแค่ใส่ตัวอักษรของข้อความแสดงข้อผิดพลาดลงในอาร์เรย์ มันต้องทำเช่นนี้เพราะsortใช้งานได้เฉพาะในอาร์เรย์ไม่ใช่สตริง
user81655

3

Pyth, 6 ตัวอักษร, Adnan

รหัส (ด้วยรหัส blanked):

S`.n 3
S_____

เอาท์พุต

.0113345678888999

ลองออนไลน์

มันเป็นตัวแทนของφเรียงลำดับแล้ว สิ่งนี้สามารถทำได้ใน 5 ถ้าคุณลบพื้นที่


Awww ฉันลืมเกี่ยวกับ backticks: p รหัสเดิมของฉันคือS+.n3"
Adnan

3

Malbolge, 254 อักขระ, frederick

รุ่นที่สับสน:

_____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ __

รุ่นของฉัน:

('&%: ^"!65 4Xzyx w4-Qs rpo'K mlk"' ~Dfdc ba}v< ::8[Z XnVlq }0/mO ,*MbK JH^6# 4`C|0 ?U=Sw uPsaq L4on2 Mjjh, ged)c '<$$p ]!};Y WiVxS eRQ>= ).K]l Ij"Fh gfedc b,=;z L\q%H X3E2C /ng-k N*KJI 8%6#D ~2^Ai >g<<d tUr`6 oJ"!1 /|{CU f)d>b <A_^! \};Yj yUxTS dtsr` ML

สิ่งนี้จะออก:

`AB\cd`

คุณสามารถทดลองใช้งานได้ที่นี่



2

05AB1E, 7 ตัวอักษร Adnan

รหัสและโค้ดเปล่า:

576T*uH
___T___

เอาท์พุท:

22368

คำอธิบาย:

576       Push this number.
   T      Push ten.
    *     Multiply. (5760)
     u    Convert to string.
      H   Interpret as a hex number and push decimal (22368) (implicit output).

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


ฉันคิดว่านี่เป็นโปรแกรมดั้งเดิมฮ่าฮ่า ทำได้ดีมาก :)
Adnan

2

คำตอบนี้ไม่ถูกต้องและไม่ควรนับรวมคะแนนของฉัน (ไม่ใช่ว่าฉันอยู่ใกล้ที่จะชนะอย่างไรก็ตาม) เพราะฉันไม่เห็นว่ามันมีการแตก

Python 3, 58 ตัวอักษร, Mathias Ettinger

รหัสพร้อมรหัสเดิมด้านล่าง:

x=range(95);  print(''.join((chr(i+32) for i in x  )    ))
______________print(_______(_______________________)_____)

เห็นได้ชัดว่าไม่ใช่ทางออกที่ตั้งใจซึ่งก็คือ:

import string;print(''.join(sorted(string.printable))[5:])

เอาท์พุท:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

(สังเกตพื้นที่ชั้นนำ)

ความสนุกที่จะแตก: ฉันต้องใช้เวลาสักพักกว่าจะหาวิธีการgenexprทำงานให้ถูกต้อง :)


1

Pyth, 17 ตัวละคร, ลุค

รหัส (ด้วยรหัส blanked):

S`u]G6*T`t"#X0231
___________#____1

เอาท์พุท:

""''''''''''''''''''''0000000000111111111122222222223333333333XXXXXXXXXX[[[[[[]]]]]]

ลองออนไลน์

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

โดยทั่วไป:

  • "#X0231 ทำให้สตริง #X0231
  • t"#X0231ลบ#:X0231
  • `t"#X0231 ได้รับการเป็นตัวแทนสตริง: 'X0231'
  • *T`t"#X0231คูณด้วย 10: 'X0231''X0231''X0231'...
  • u]G6*T`t"#X0231 ล้อมรอบมันในอาร์เรย์ 6 ครั้ง
  • `u]G6*T`t"#X0231รับการแทนค่าสตริง: [[[[[['X0231'...'X0231']]]]]]
  • S`u]G6*T`t"#X0231 เรียงลำดับเพื่อรับเอาต์พุต

ดีมาก! และค่อนข้างแตกต่างจากสิ่งที่ฉันทำ
ลุค



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