รหัสบันไดตำรวจ


36

หมายเหตุ: ความท้าทายนี้เสร็จสิ้นแล้ว ผลงานที่ส่งยังคงยินดี แต่ไม่สามารถชนะได้

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

1เขียนโค้ดที่ผลจำนวนเต็ม หากคุณเพิ่มลบหรือแทนตัวอักษรหนึ่ง (ที่คุณเลือก) 2รหัสควรเอาท์พุทจำนวนเต็ม เปลี่ยนตัวละครตัวหนึ่งมากขึ้น (ที่เหมือนกันหรืออื่น) 3และรหัสที่ควรเอาท์พุท ทำต่อไปเช่นนี้เท่าที่จะทำได้ แต่สูงสุด 10 รูปแบบเอาต์พุตเริ่มต้นเช่นans = 1ได้รับการยอมรับ คุณสามารถละเว้นเอาต์พุตไปที่ STDERR (หรือเทียบเท่า)

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

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

ส่งผลงานหลังจากวันที่ 24 พฤศจิกายน แต่ก็ไม่มีสิทธิ์ได้รับชัยชนะ (เพราะมีแนวโน้มว่าจะมีโจรน้อยลง)


โพสต์ตัวอย่าง:

โพสต์ต่อไปนี้เป็นการส่งในภาษาMyLangมันมีความยาว 9 ไบต์และใช้ได้กับตัวเลข 1 - 8

MyLang, 9 ไบต์, 8 ตัวเลข

ส่งงานนี้สำหรับ 1 - 8 _ตัวอักษรเก็บตัวจะแสดงด้วยขีดล่าง:

abc____i

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

คำเตือน: กระดานผู้นำไม่ผ่านการทดสอบและการส่งที่ไม่ได้ติดตามอาจไม่ปรากฏในรายการ

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>table th,table td{padding: 5px;}th{text-align: left;}.score{text-align: right;}table a{display: block;}.main{float: left;margin-right: 30px;}.main h3,.main div{margin: 5px;}.message{font-style: italic;}#api_error{color: red;font-weight: bold;margin: 5px;}</style> <script>QUESTION_ID=99546;var safe_list=[];var uncracked_list=[];var n=0;var bycreation=function(x,y){return (x[0][0]<y[0][0])-(x[0][0]>y[0][0]);};var byscore=function(x,y){return (x[0][1]>y[0][1])-(x[0][1]<y[0][1]);};function u(l,o){jQuery(l[1]).empty();l[0].sort(o);for(var i=0;i<l[0].length;i++) l[0][i][1].appendTo(l[1]);if(l[0].length==0) jQuery('<tr><td colspan="3" class="message">none yet.</td></tr>').appendTo(l[1]);}function m(s){if('error_message' in s) jQuery('#api_error').text('API Error: '+s.error_message);}function g(p){jQuery.getJSON('//api.stackexchange.com/2.2/questions/' + QUESTION_ID + '/answers?page=' + p + '&pagesize=100&order=desc&sort=creation&site=codegolf&filter=!.Fjs-H6J36w0DtV5A_ZMzR7bRqt1e', function(s){m(s);s.items.map(function(a){var he = jQuery('<div/>').html(a.body).children().first();he.find('strike').text('');var h = he.text();if (!/cracked/i.test(h) && (typeof a.comments == 'undefined' || a.comments.filter(function(b){var c = jQuery('<div/>').html(b.body);return /^cracked/i.test(c.text()) || c.find('a').filter(function(){return /cracked/i.test(jQuery(this).text())}).length > 0}).length == 0)){var m = /^\s*((?:[^,;(\s]|\s+[^-,;(\s])+).*(0.\d+)/.exec(h);var e = [[n++, m ? m[2]-0 : null], jQuery('<tr/>').append( jQuery('<td/>').append( jQuery('<a/>').text(m ? m[1] : h).attr('href', a.link)), jQuery('<td class="score"/>').text(m ? m[2] : '?'), jQuery('<td/>').append( jQuery('<a/>').text(a.owner.display_name).attr('href', a.owner.link)) )];if(/safe/i.test(h)) safe_list.push(e);else uncracked_list.push(e);}});if (s.items.length == 100) g(p + 1);else{var s=[[uncracked_list, '#uncracked'], [safe_list, '#safe']];for(var i=0;i<2;i++) u(s[i],byscore);jQuery('#uncracked_by_score').bind('click',function(){u(s[0],byscore);return false});jQuery('#uncracked_by_creation').bind('click',function(){u(s[0],bycreation);return false});}}).error(function(e){m(e.responseJSON);});}g(1);</script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea"><div id="api_error"></div><div class="main"><h3>Uncracked submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="uncracked"></tbody></table><div>Sort by: <a href="#" id="uncracked_by_score">score</a> <a href="#" id="uncracked_by_creation">creation</a></div></div><div class="main"><h3>Safe submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="safe"></tbody></table></div>


ไม่แน่ใจว่าฉันเข้าใจ ... ได้รับรหัสโดยพลการใน CJam ที่สร้าง1ขึ้นฉันจะป้องกันโจรจากการเพิ่ม)ซ้ำ ๆเพื่อสร้างตัวเลขที่เหลือได้อย่างไร เช่นเดียวกันจะใช้งานได้กับบางภาษาเท่านั้น
Luis Mendo

2
หากเป็นไปได้สำหรับโปรแกรมใด ๆ ที่ให้ผลลัพธ์1มันจะปรากฏว่า CJam เป็นตัวเลือกภาษาที่ไม่ดีสำหรับความท้าทายนี้ ไม่มีทางที่จะป้องกันไม่ให้โจรทำเช่นนั้น
Stewie Griffin

3
@LuisMendo เอาละแน่นอนว่ามันจะทำให้เรื่องนี้น่าสนใจมากขึ้น ...
LegionMammal978

1
@DanielJour มันอาจจะแก้ไขได้ขึ้นไปยังหมายเลขใด ๆ 10แต่จำนวนสูงสุดโจรต้องพบคือ กฎนั้นอยู่ในสถานที่เนื่องจากการส่งจำนวนมากอาจจะขยายไปถึงอินฟินิตี้ (ในทางทฤษฎี) ดังนั้นการให้คะแนนตามจำนวนที่ทำได้สูงที่สุดจะไม่สมเหตุสมผล
Stewie Griffin

1
คุณอาจต้องการลองตัดสิทธิ์รายการหากส่วนหัวมีcrackedในบางรูปแบบ นี่คือสิ่งที่ผู้ใช้userscript ออกแบบใหม่ในปัจจุบัน
ETHproductions

คำตอบ:


1

Hexagony , 18 ไบต์, 10 ตัวเลข, ปลอดภัย

ส่งงานนี้สำหรับ 1 - 10 _ตัวอักษรเก็บตัวจะแสดงด้วยขีดล่าง:

.__{_]5[$@.;=@$!!1

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

ทางออกของฉัน:

1:   .<[{8]5[$@.;=@$!!10
2:   .<[{8]5[$@);=@$!!10
3:   2<[{8]5[$@);=@$!!10
4:   3<[{8]5[$@);=@$!!10
5:   4<[{8]5[$@);=@$!!10
6:   5<[{8]5[$@);=@$!!10
6:   7<[{8]5[$@);=@$!!10
8:   7<[{8]5[$@);=@$!!10
9:   8<[{8]5[$@);=@$!!10
10:  9<[{8]5[$@);=@$!!10

Hex สำหรับเอาต์พุต 1:

ลองออนไลน์!

Full Hex:
  . < [ 
 { 8 ] 5
[ $ @ . ;
 = @ $ ! 
  ! 1 0

Important parts:
  . < .
 . 8 . 5
. $ @ . ;
 . . $ .
  . 1 .
  1. ที่<ขอบหน่วยความจำคือ0ดังนั้นจึงปรากฏขึ้น
  2. ฮิต 1
  3. ข้ามไป 5
  4. ข้ามไป8แต่กลับด้าน<และ8ไปทางกลับ
  5. ชม5อีกครั้ง
  6. กระโดดข้าม 1
  7. มาถึง<จุดนี้ค่าหน่วยความจำคือ 1585 ซึ่ง mod 256 เป็น ASCII1
  8. ;@สุดท้ายพิมพ์และออกด้วย

Hex สำหรับเอาต์พุต 2:

ลองออนไลน์!

Important parts:
  . < .
 . 8 . 5
. $ @ ) ;
 . . $ .
  . 1 .

นี้ตามเส้นทางเดียวกัน แต่ในทางกลับวิธีที่มันฮิต)ซึ่งเพิ่มขอบหน่วยความจำที่ 1586 2หรือ


Hex สำหรับเอาต์พุต 3-9:

ลองออนไลน์!

Important parts:
  2 < [
 . . ] .
. $ . ) .
 . @ . !
  . 1 .
  1. ยอดฮิต 2
  2. ขณะนี้ขอบหน่วยความจำเป็นค่าบวกเมื่อถึง<ดังนั้นจึงปิดลง
  3. การ]เปลี่ยนแปลงตัวชี้คำสั่ง แต่จะกลับมาทันที[
  4. ) เพิ่มขึ้นเป็น 3
  5. ! พิมพ์ 3
  6. $ถูกทิ้งไว้จากตัวเลขสองตัวแรกดังนั้นเราจึงกระโดดข้ามท้าย ( @)
  7. 1 เปลี่ยนขอบหน่วยความจำ แต่นั่นไม่สำคัญตอนนี้
  8. < สะท้อนถึงตัวชี้กลับ
  9. อีกครั้ง1ไม่สำคัญเพราะเรากดปุ่ม@เพื่อจบโปรแกรม

11

Retina , 2 ไบต์, 10 ตัวเลข, แคร็ก

_1

ใช้งานได้ตั้งแต่ 1 ถึง 10 _เป็นตัวละครที่ซ่อนอยู่ นี่ไม่ควรยากเกินไป แต่ฉันหวังว่ามันจะเป็นปริศนาที่น่าสนใจ :)

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


2
Argh ไม่สามารถคิดออก 10: p
LegionMammal978

@ LegionMammal978 :)
Martin Ender

2
ถูกแคร็กโดย FryAmTheEggman: codegolf.stackexchange.com/a/99560/32700
TheNumberOne

10

ระดับเสียงคู่, 55 ไบต์, 10 หมายเลข, ถอดรหัส

(o__(O_o_(@(__o)o__-O}_)_(0<O,{_(_o_O-1)+1_@(_1}_)(__o_

_ เป็นตัวละครที่ไม่รู้จัก

วิธีการแก้

(o=@(O,o)(@(O,o)o{2-O}())(0<O,{@()o(O-1)+1,@()1}))(0,o)% แล้วเปลี่ยนมากสุดท้าย0ไป1,2,3ฯลฯ

ป.ร. ให้ไว้นี้จะคำนวณซ้ำx x+1มันประกอบด้วยส่วนใหญ่ของสองฟังก์ชั่นที่ไม่ระบุชื่อ หนึ่งยังมีifคำสั่งให้ยึด recursion นี้:

if_ = @( boolean, outcomes) outcomes{ 2 - boolean}();

นี้เป็นเพียงการเหยียดหยามความจริงที่ว่าค่าบูลีนประเมินหรือ0 1ฟังก์ชั่นนี้ยอมรับค่าบูลีนและอาร์เรย์ของสองฟังก์ชั่นและประเมินหนึ่งหรือสองฟังก์ชั่นเหล่านี้ขึ้นอยู่กับค่าบูลีน ส่วนที่สองคือการเรียกซ้ำที่แท้จริง:

plus_one = @(n,f) if_(0<n ,{@()f(n-1)+1, @()1})

เนื่องจากฟังก์ชัน anyonmous ไม่ระบุชื่อคุณไม่สามารถเข้าถึงได้โดยตรงจาก itsefl นั่นเป็นเหตุผลที่เราต้องการอาร์กิวเมนต์ที่สองfเป็นครั้งแรก ต่อมาเราจะให้จับไป instelf ฟังก์ชั่นเป็นอาร์กิวเมนต์ที่สองเพื่อให้ฟังก์ชั่นสุดท้ายรูปลักษณ์ที่ต้องการดังนั้น:

plus_one_final = @(n)plus_one(n,plus_one);

ดังนั้นในเครื่องหมายนี้ส่งของฉันกลายเป็น:

(plus_one=@(n,f)(@(boolean,outcomes)outcomes{2-boolean}())(0<n,{@()f(n-1)+1,@()1}))(n,f)

ผมถามเกี่ยวกับแองเคอ recursion สำหรับฟังก์ชั่นที่ไม่ระบุชื่อใน MATLAB ในขณะที่ที่ผ่านมาในStackOverflow


19
o_O O____o O_O o_O
TuxCrafting

ฉันไม่แน่ใจว่านี้เป็นจริงยากที่จะแตก =)
flawr

แน่นอนว่ามันไม่ใช่เรื่องง่ายที่จะแตก! อาจทำได้ด้วยปากกาและกระดาษ (!)
Stewie Griffin

ฉันถือว่าสิ่งนั้นเป็นคำชม :) ฉันคิดว่าคุณจะชอบวิธีแก้ปัญหาของฉัน แต่ฉันจะไม่เปิดเผยอะไรจนกว่ามันจะแตก / ปลอดภัย
ข้อบกพร่อง


9

Python 2, 9 ไบต์, ตัวเลข 10 ตัว, แคร็ก

print 8/8

ไม่มีตัวอักษรที่ซ่อนอยู่ คุณสามารถทุบมันโดยไม่บังคับสัตว์เดรัจฉานได้หรือไม่?


แคร็ก - นั่นสนุกมาก :)
Sp3000

8

Perl, 12 ไบต์, 10 ตัวเลข, แคร็ก!

ขีดล่างแทนอักขระที่ไม่รู้จัก

____;say__-9

อาจจะค่อนข้างง่ายและไม่แปลกใจเลยถ้ามีหลายวิธี ถึงกระนั้นมันก็อาจจะสนุกที่จะแตก

(วิธีแก้ปัญหาที่ตั้งใจนั้นเหมือนกับรอยแตกนี่เป็นปัญหาพื้นฐานเกี่ยวกับการกำหนด 10 ให้กับตัวแปรในสี่ตัวละครซึ่งยากอย่างน่าประหลาดใจใน Perl; ซึ่งแตกต่างจากภาษากอล์ฟหลายภาษา 10. )


1
Cracked ตอนแรกฉันคิดว่ามันเป็นสิ่งที่ชอบ$_=1;say;#-9แต่ฉันไม่สามารถหาวิธีที่จะได้รับ 10
Riley

7

Perl, 46 ไบต์, 10 ตัวเลข, ปลอดภัย

ปัญหา

__b_b_\__}_b_b_b_0_;
$b[0]=10;$b{0}=1;say$b[0]

ปัญหาที่สั้นกว่ามีแนวโน้มที่จะแตกอย่างรวดเร็วดังนั้นฉันคิดว่าฉันจะลองอีกต่อไป อีกต่อไปมีแนวโน้มที่จะแตกถ้าคนออกจากช่องว่างมากพอที่จะแอบบางสิ่งที่น่ารังเกียจเหมือนsayหรือexitในดังนั้นช่องว่างทั้งหมดที่นี่สั้น _ตัวอักษรที่ซ่อนอยู่จะแสดงโดยใช้

ทางออกของฉัน

sub b{\@_}*b=b$b{0};
$b[0]=10;$b{0}=1;say$b[0]

หากต้องการพิมพ์ 2, 3, ฯลฯ ถึง 9 ให้เปลี่ยนหมายเลขที่ได้รับมอบหมาย$b{0} ในบรรทัดที่สอง (เช่น$b{0}=2, $b{0}=3ฯลฯ ) โปรแกรมสำหรับ 9 มีลักษณะดังนี้:

sub b{\@_}*b=b$b{0};
$b[0]=10;$b{0}=9;say$b[0]

จากนั้นในการสร้าง 10 ให้ใส่เครื่องหมายบรรทัดแรกโดยใส่#อักขระลงไป

คำอธิบาย

สิ่งแรกที่ควรทราบคือวิธีการแก้ปัญหานั้นไม่ได้เกิดขึ้นจริงนอกเหนือจากการลบช่องว่างออก: ถ้าเราจัดวางด้วยช่องว่างที่อ่านได้มากขึ้นเราจะได้รับสิ่งนี้:

sub b { \@_ }
*b = b $b{0};
$b[0] = 10;
$b{0} = 1;
say $b[0];

โดยปกติเมื่อคุณเข้าถึงข้อโต้แย้งของ subroutine ใน Perl @_คุณทำเช่นนั้นผ่านการคัดลอกพวกเขาออกจาก มีเหตุผลที่ดีสำหรับสิ่งนี้: @_นามแฝงข้อโต้แย้งที่รูทีนย่อยได้รับ (เช่น(sub { $_[0] = 3 })->($x)จะกำหนดให้$x) บางสิ่งที่ไม่เป็นที่ต้องการตามปกติ

แม้ว่า@_อาจดูขลังจริง ๆ แล้วมันแค่ใช้คุณสมบัติมาตรฐานของ Perl internals (ซึ่งพร้อมใช้งานจาก XS แต่เกิดขึ้นในบางกรณีแปลก ๆ ใน Perl บริสุทธิ์เช่น@_ตัวเอง): อาร์เรย์ไม่เก็บองค์ประกอบโดยตรง แต่โดยอ้างอิง ดังนั้นเมื่อเราเรียกใช้bในบรรทัดที่สองด้านล่าง Perl จะสร้างอาร์เรย์ (เรียกว่า@_) ซึ่งองค์ประกอบแรกเป็นการอ้างอิงไปยังที่เก็บข้อมูลเดียวกันที่$b{0}ใช้ (ค่าแฮชยังถูกเก็บไว้โดยการอ้างอิง $ _ [0] และ $ b {0} ทั้งคู่อ้างถึงที่เก็บข้อมูลเดียวกัน ณ จุดนี้) เนื่องจาก@_ไม่ได้ทำอะไรเป็นพิเศษจากมุมมองภายในเราสามารถทำการอ้างอิงได้ เช่นเดียวกับที่เราสามารถทำได้กับอาเรย์อื่น ๆ ทำให้มันอยู่เหนือกว่ารูทีนย่อยที่มันนิยามไว้

ตัวแปร Perl ยังอ้างถึงการจัดเก็บข้อมูลโดยการอ้างอิง นานมาแล้วคนใช้ในการใช้รหัสเช่น*x = *y;ชุด$xเป็นชื่อแทนไป$y(ผ่านการทำให้พวกเขาอ้างอิงในสิ่งเดียวกัน) เช่นเดียวกัน@xเป็นชื่อแทนไป@y, %xเป็นชื่อแทนไป%yและอื่น ๆ ที่ค่อนข้างทำลายค่าคงที่ตัวแปรที่มีชื่อคล้ายกันไม่จำเป็นต้องทำในทำนองเดียวกันดังนั้น Perl ที่ทันสมัยจึงเป็นทางเลือก การกำหนดการอ้างอิงไปยัง typeglob จะแทนที่เฉพาะตัวแปรที่ตรงกับประเภทของการอ้างอิง (ดังนั้น*x = \%yนามแฝง%xจะชี้ไปที่ที่เก็บข้อมูลเดียวกัน%yแต่เว้นไว้พูด$xคนเดียว) ไวยากรณ์นี้ไม่สนใจว่าที่เก็บข้อมูลที่คุณใช้นามแฝงมีชื่อหรือไม่ดังนั้นเมื่อเรากำหนดค่าส่งคืนเป็นb(ซึ่งเป็นการอ้างอิงอาร์เรย์ที่ทำให้อาร์เรย์เดิมเรียกว่า@_มีชีวิตอยู่) เป็น*bสิ่งที่เกิดขึ้น@bคือเปลี่ยนชื่อแทนรายการอาร์กิวเมนต์เป็นการเรียกไปยังb(ในขณะที่%bไม่เปลี่ยนแปลง) ซึ่งหมายความว่าโดยเฉพาะอย่างยิ่งที่$b[0]และ$b{0}ตอนนี้ชี้ไปที่ที่เก็บข้อมูลเดียวกันและการกำหนดให้กับหนึ่งจึงจะเปลี่ยนอื่น ๆ ทุกอย่างจากตรงนั้นตรงไปตรงมาอย่างสมบูรณ์

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


1
ฉันรู้สึกทึ่งกับสิ่งนี้มาก ฉันได้เรียนรู้เกี่ยวกับแฮชปลอมและรีเฟรชหน่วยความจำของฉันในการอ้างอิงและการอ้างอิง แต่ฉันไม่สามารถเข้าใจได้!
Dom Hastings

1
@DomHastings ... และฉันได้รับหลอกลวงรอบกับตัวละครแบ่งเขตต่างๆสำหรับqและsและyและm(ส่วนใหญ่พยายามที่จะได้รับพวกเขาที่จะจบหลังจากที่$b[0]ได้รับมอบหมาย) แต่ไม่มีอะไรทำงานสำหรับฉัน (ยัง)
msh210

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

ฉันรู้สึกว่าฉันใกล้จะหงุดหงิด ฉันคิดsub b{\@_}ในใจของฉันและแม้ว่าฉันจะทดลองกับ*bฉันไม่สามารถรับมันได้! ขอบคุณสำหรับคำอธิบาย ฉันอาจคัดค้านในคำอธิบายของคุณ แต่ทำไมsub b{\@_}*b=b$b[0]ไม่ทำอย่างนั้น
Dom Hastings

คุณกำลังพยายามสร้างองค์ประกอบอาร์เรย์และองค์ประกอบแฮชแบ่งปันหน่วยความจำดังนั้นคุณต้องพูดถึงทั้งคู่ องค์ประกอบอาร์เรย์ที่กล่าวถึงโดยนัยเมื่อคุณกำหนดการอ้างอิงอาร์เรย์ ( \@_) ให้*bแต่คุณต้องพูดถึงองค์ประกอบแฮชอย่างชัดเจนด้วยตัวคุณเอง ด้วย*b=b$b[0]คุณเพียงแค่สร้างสมนามใหม่$b[0](หลังจากเปลี่ยนตำแหน่ง@bจุด) ไปสู่สิ่ง$b[0]ที่มีอยู่เมื่อเริ่มต้นโปรแกรมซึ่งไม่มีประโยชน์

5

จาวาสคริปต์, 30 ไบต์, 10 ตัวเลข, ถอดรหัส

alert(Array(_)________.length)

ไม่ควรยากเกินไป แต่หวังว่ามันจะยากพอที่จะท้าทาย :) _ตัวอักษรเก็บตัวมีเครื่องหมาย


ทำได้ดีนี่! ฉันมีเวลาในการแก้ปัญหานี้มันง่าย แต่ก็ท้าทายในเวลาเดียวกัน
Kritixi Lithos

5

Perl, 14 ไบต์, 10 ตัวเลข, แคร็ก

say_!"___"%""_

ใช้งานได้ตั้งแต่ 1 ถึง 10 _เป็นอักขระที่ซ่อนอยู่

ฉันคิดว่าสิ่งนี้ไม่ควรยากเกินที่จะถอดรหัส ฉันมีอันที่ยากกว่าสำหรับ 22 ไบต์ฉันจะโพสต์มันถ้าอันนี้แตก


รหัสเดิม:

say"!"=~y"%""c

และแทนที่"!"ด้วยสตริงของความยาวของหมายเลขที่คุณต้องการที่จะพิมพ์ตัวอย่างเช่น!, !!, !!!ฯลฯ

อย่างไรก็ตามais523พบวิธีอื่น:

say"!"+1#"%""r

2
Cracked ฉันสงสัยว่านี่ไม่ใช่สิ่งที่คุณจะทำ (ผมพยายามที่จะทำอะไรบางอย่างโดยใช้ regex แต่นี้คือง่ายมาก.)



4

เจลลี่ , 7 ไบต์ , 10 ตัวเลข, แคร็ก

“1‘ỌȮḊ‘

ไม่มีสัญลักษณ์แทน

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

รอยแตกที่ตั้งใจคือ:

“1‘ỌȮḊ‘ - (prints 1)
“1‘     - code page index list of characters "1": [49]
   Ọ    - cast to ordinals: ['1']
    Ȯ   - print (with no line feed) and return input: effectively prints "1"
        -     (but if left at this would then implicitly print another "1")
     Ḋ  - dequeue: []
      ‘ - increment (vectorises): []
        - implicit print: prints ""

“1‘ỌŒḊ‘ - (prints 2)
“1‘Ọ    - as above: ['1']
    ŒḊ  - depth: 1
      ‘ - increment: 2
        - implicit print: prints "2"

“1‘ỌŒḊ‘‘ - (prints 3)
“1‘ỌŒḊ‘  - as above: 2
       ‘ - increment: 3
         - implicit print: prints "3"

... keep adding an increment operator to print 4 - 10.

ฉันจะสามารถถอดรหัสได้หาก '' 'อยู่ในบรรทัดถัดไป ใกล้ ... :)
Kritixi Lithos

แตกแต่คุณสามารถอธิบายสิ่งที่เกิดขึ้นได้10เพราะฉันโชคดีในอันนี้ในขณะที่พยายามทำสิ่งต่าง ๆ ที่อาจใช้งานได้
Hedi

@Hedi Ninja'd ฉันเร็วเกินไปฉันกำลังทำมันอยู่
Erik the Outgolfer

@Hedi - คุณเป็นคนที่ไม่ได้ตั้งใจ 10ฉันเชื่อว่าวิธีที่ใช้ได้ผลสำหรับคุณคือการประเมินรหัสวุ้นในสตริง9ด้วยอาร์กิวเมนต์ของ0(ค่าเริ่มต้นของอินพุต) ซึ่งคุณจะทำการ dequeue (ไม่มีผล) และเพิ่มขึ้น
Jonathan Allan

... จริง ๆ แล้วฉันคิดว่าวิธี10การทำงานสำหรับคุณคือการประเมินรหัสวุ้นในสตริงที่9มีอาร์กิวเมนต์ของ[]- ค่าเริ่มต้นของการป้อนข้อมูล0dequeued - ซึ่งคุณเพิ่มขึ้นแล้วเช่น“1‘‘‘‘‘‘‘‘‘Ọv0Ḋ¤‘
Jonathan Allan

4

Befunge-93, 11 ไบต์, ตัวเลข 10+, ถอดรหัส

ส่งงานนี้สำหรับอย่างน้อย 1 - 10 ตัวอักษรเก็บตัวจะแสดงด้วย

□□5:**-□-.@

ลองออนไลน์

ฉันต้องบอกว่าฉันประทับใจที่คนสองคนสามารถหาวิธีแก้ปัญหาที่เป็นอิสระสำหรับสิ่งนี้ได้ซึ่งไม่ใช่สิ่งที่ฉันคาดหวัง ในขณะที่มาร์ตินไปถึงที่นั่นฉันให้ "ชนะ" แก่Sp3000เพราะโซลูชั่นของพวกเขาพกพาได้มากกว่า

นี่คือทางออกที่ฉันตั้งใจไว้:

g45:**-2-.@
g45:**-1-.@
g45:**-1\.@
g45:**-1\+.@
g45:**-2\+.@
...
g45:**-7\+.@

เนื่องจาก stack อันเดอร์โฟล์ใน Befunge ถูกตีความว่าเป็น 0 gเพียงแค่อ่านจาก 0,0 ส่งคืนค่า ASCII ของ 'g' คือ 103 45:**-ลบ 100 ให้คุณ 3 จากนั้น2-ให้ 1

สำหรับการทำซ้ำครั้งที่สาม, -(ลบ ) ถูกเปลี่ยนเป็น\คำสั่ง (swap) ดังนั้น 3 จึงกลายเป็นรายการสแต็คสูงสุด และในการทำซ้ำสี่+คำสั่งa (เพิ่ม) จะถูกแทรกดังนั้นการเพิ่ม 3 เข้ากับ 1 ให้ 4


Cracked ฉันอยากรู้ว่าคุณแก้ปัญหาอะไรในใจ :)
Martin Ender

@MartinEnder ตามที่ฉันแสดงความคิดเห็นในคำตอบของคุณฉันต้องการที่จะออกจากการแก้ปัญหาที่ฉันตั้งใจไว้ในขณะที่คนอื่นต้องการที่จะพยายามแก้ปัญหาแบบพกพามากขึ้น ไม่เป็นไร?
James Holderness

แน่นอนว่าไม่เป็นไร :)
Martin Ender

"15:**-6-.@ให้ 1 แต่ฉันไม่แน่ใจว่าความจริงที่ว่าการ"กด 32 อยู่ด้านบน (เนื่องจากช่องว่างโดยนัย) เป็นสิ่งประดิษฐ์ของล่าม TIO หรือส่วนหนึ่งของข้อมูลจำเพาะของ Befunge เพราะพยายามล่ามสองสามคน โซลูชันที่คุณตั้งใจไว้นั้นขึ้นอยู่กับพฤติกรรมนี้หรือไม่
Sp3000

@ Sp3000 นั่นไม่ใช่ทางออกที่ฉันตั้งใจ แต่มันก็ใช้ได้จริง Befunge - ล่ามที่ไม่สนับสนุนที่ไม่ถูกต้อง หากคุณโพสต์คำตอบกับส่วนที่เหลือของลำดับฉันแน่นอนพิจารณาว่าแตกสมบูรณ์
James Holderness

4

R, 21 ไบต์, 10 หมายเลขแคร็ก

__i___________i______

ใช้งานได้ 10 หมายเลข _เป็นตัวละครที่ซ่อนอยู่

ทางออกเดิม:

which(letters%in%"a")
which(letters%in%"b")
เป็นต้น


@StewieGriffin นี่คือการโพสต์ครั้งแรกของฉันในเว็บไซต์นี้และฉันไม่รู้จักบรรทัดฐาน ฉันมีความท้าทาย R อีกครั้งหนึ่ง - ฉันคิดว่ายากขึ้น ฉันสามารถเพิ่มคำตอบอื่นได้หรือไม่ หรือผนวกเข้ากับอันนี้?
Gregor

เพิ่มใหม่มันสมบูรณ์ดี (แยกต่างหาก) 😊ยินดีต้อนรับสู่เว็บไซต์😊
Stewie Griffin

ฉันแตกที่นี่หรือไม่
Tensibai

@ Tenensai Cracked :)
Gregor


3

อ็อกเทฟ, 32 ไบต์, 10 ตัวเลข Cracked

_n_(isprime(floor(s____i__ i____

_ เป็นตัวละครที่ซ่อนอยู่

คุณสามารถลองคู่ออนไลน์ที่นี่


ทางออกเดิม:

1: nnz(isprime(floor(sqrt(i):pi')))

2: nnz(isprime(floor('sqrt(i):pi')))

3: nnz(isprime(floor('sqrt(i):pia')))

4: nnz(isprime(floor('sqrt(i):piaa')))

...


ดีมาก! Cracked ไม่แน่ใจว่าฉันทำซ้ำรหัสของคุณหรือไม่?
Stewie Griffin

@StewieGriffin ทำได้ดีมาก! ฉันควรจะเปิดเผยตัวละครมากขึ้น ... :-D
Luis Mendo

1
แย่มากที่ :) ไม่ดีที่คุณไม่สามารถพูดได้ว่าเป็น MATLAB ... อีกหนึ่งตัวละครน่าจะทำให้มันยากกว่าเดิม ... ฉันสนุกกับมันมาก ... ฉันสนุกกับมัน ... ฉันใช้เวลาเต็ม 25 นาที :)
Stewie Griffin

@Stewie ใช่คุณใช้ประโยชน์จากคุณสมบัติที่ไม่ใช่ Matlab! :-)
Luis Mendo

3

อ็อกเทฟ, 17 ไบต์, 10 หมายเลข, แคร็ก

_i_(__i__(2_5_))

_ตัวละครเก็บตัวมีเครื่องหมาย

โซลูชันที่ตั้งใจไว้:


    fix(asind(2/59))
    fix(asind(3/59))
    fix(asind(4/59))
    fix(asind(5/59))
    fix(asind(6/59))
    fix(asind(7/59))
    fix(asind(8/59))
    fix(asind(9/59))
    fix(asind(9/55))
    fix(asind(9/50))


แคร็ก (ในที่สุด =) แต่อาจไม่ใช่วิธีดั้งเดิมของคุณใช่ไหม
ข้อบกพร่อง

นีซ, เพิ่มวิธีการของฉันในแท็กสปอยเลอร์ :)
สตีวีกริฟฟิ

2
โอ้ทางออกของคุณฉลาดจริงๆ !!!
ข้อบกพร่อง

3

อ็อกเทฟ, 19 ไบต์, 10 หมายเลข, ถอดรหัส

__sca__1_)___'-_6_'

_ เป็นตัวละครที่ซ่อนอยู่

โซลูชันที่ตั้งใจไว้:

ปาสคาล (10) ( 'a'-96)



ผมจำไม่ได้ว่าฟังก์ชั่นใด ๆ scaกับ มาจากคุณฉันควรนึกถึงฟังก์ชั่นเมทริกซ์ :-)
Luis Mendo

มีเหตุผลว่าทำไมฉันทำรายการที่สมบูรณ์ของชื่อฟังก์ชันคู่ =) เป็น
flawr

3

05AB1E , 5 ไบต์, 10 ตัวเลข, แตก!

ไม่ยากมาก แต่ก็สนุกดี :)

_[==_

_เป็นตัวละครแบบสุ่ม ใช้การเข้ารหัสCP-1252 ลองออนไลน์!


ฉันเกือบจะทำให้มันทำงานได้ แต่จากนั้นมันจะเข้าสู่วงวนอนันต์ ...
Kritixi Lithos


@daHugLenny Hahaha เรียบร้อยดี! ฉันไม่คิดอย่างนั้น :)
Adnan

3

05AB1E , 6 ไบต์ 10 ตัวเลขแตก

ความพยายามที่ 2 ครั้งนี้โดยไม่มีสตริงสามอักขระ: p

_ [==_

_เป็นตัวละครแบบสุ่ม ใช้การเข้ารหัสCP-1252 ลองออนไลน์!



@milk ดีว่าเป็นทางออกที่ตั้งใจ :)
Adnan

3

จาวาสคริปต์, 22 ไบต์, 10 ตัวเลข, ถอดรหัส

alert(0_6_4_>_0_2_0_7)

_ เป็นตัวละครที่ซ่อนอยู่

คำแนะนำเกี่ยวกับแนวทางแก้ไขปัญหา

อักขระที่ต้องเปลี่ยนเพื่อสร้างตัวเลขทั้งหมดจะเหมือนกันเสมอ



@ ais523 ทำได้ดีมาก!
Arnauld

3

จาวาสคริปต์ 21 ไบท์, 10 เบอร์ที่แคร็ก

alert(b_oa_"3____1"))

อักขระที่ไม่เปิดเผยถูกทำเครื่องหมายด้วย _

Cracked

รุ่นของฉัน:

alert(btoa|"3"&("1"))
alert(btoa|"3"^("1"))
alert(btoa|"3"^("0"))
alert(btoa|"3"^("7"))
alert(btoa|"2"^("7"))
alert(btoa|"1"^("7"))
alert(btoa|"0"^("7"))
alert(btoa|"0"^("8"))
alert(btoa|"0"^("8"))
alert(btoa|"2"^("8"))



3

Python 3, 16 ไบต์, ตัวเลข 10 ตัว, แคร็ก

print(?%??f?r?t)

?ตัวละครเก็บตัวมีเครื่องหมาย นี่อาจเป็นเรื่องง่ายเนื่องจากมีเพียงเครื่องหมายคำถามห้าข้อ แต่ฉันหวังว่ามันจะสนุก



3

C #, 90 ไบต์, ตัวเลข 10 ตัว, ถอดรหัส

using ______________________________________________;class C{static void Main(){_______;}}

ฉันไม่รู้จริงๆว่ามันยากแค่ไหนที่จะร้าว

แก้ไข: โอ๊ะโอเกิดข้อผิดพลาดในการถอดความ หนึ่ง_น้อยเกินไปหลังจากusingนั้น

ตอนนี้แคร็กโดยHediซึ่งพบวิธีแก้ปัญหา (ยกเว้นชื่อคลาส)


d'oh ... หนึ่งสั้นเกินไปสำหรับการเขียน ()
masterX244

ไม่ได้ช่วย ... ช่องว่างผิด และเซมิโคลอนนั้นหลังจากช่องว่างแรกขัดขวางความคิดอื่น ๆ
masterX244


3

จาวาสคริปต์ 33 ไบต์, 10 เบอร์แตก x2

โอ๊ะฉันโพสต์โพสต์รายการของฉันเพื่อสร้าง 10 ซึ่ง Hedi แตกราวกับว่าเป็น 1

alert(_to__"_Xc0__0_B6____Zp=="))

รุ่นที่มีวัตถุประสงค์เพื่อโพสต์เพื่อสร้าง 1

alert(_to__"_Xc0__0_Bf____Zp=="))

อักขระที่ไม่เปิดเผยถูกทำเครื่องหมายด้วย _

alert(btoa|"0Xc0"-0xBf|!("Zp=="))
alert(btoa|"0Xc0"-0xBe|!("Zp=="))
alert(btoa|"0Xc0"-0xBd|!("Zp=="))
alert(btoa|"0Xc0"-0xBc|!("Zp=="))
alert(btoa|"0Xc0"-0xBb|!("Zp=="))
alert(btoa|"0Xc0"-0xBa|!("Zp=="))
alert(btoa|"0Xc0"-0xB9|!("Zp=="))
alert(btoa|"0Xc0"-0xB8|!("Zp=="))
alert(btoa|"0Xc0"-0xB7|!("Zp=="))
alert(btoa|"0Xc0"-0xB6|!("Zp=="))


ฉันได้เพิ่มช่องโหว่สำหรับเวอร์ชั่นที่ต้องการ ฉันจะพยายามหาวิธีที่จะแก้ปัญหาของคุณสำหรับ 10: console.log(atob|"0Xc0"-0xB6|("Zp=="))ฉันคิดว่า
Hedi

ฉันปรับปรุงคำตอบของฉันด้วยสิ่งที่ควรจะเป็นรอยแตกที่ตั้งใจไว้
Hedi

3

Python, ตัวเลข 10+, 61 ไบต์, แคร็ก!

นี่คือรหัสที่ฉันโพสต์:

try:x
except:print(__import__('sys').??c??n??()[????b????e???

รหัสเดิมคือ:

try:x
except:print(__import__('sys').exc_info()[2].tb_lineno)

โดยทั่วไปแล้วมันจะพ่นข้อผิดพลาด ( 'x' is not defined) จากนั้นพิมพ์บรรทัดที่พบข้อผิดพลาด ดังนั้นเพียงแค่เพิ่มบรรทัดใหม่ที่จุดเริ่มต้นเพื่อเพิ่มจำนวน

ฉันรู้ว่ามันไม่ยากที่จะแตก - ฉันแค่ต้องการวิธีตลกในการพิมพ์ตัวเลข - แต่ฉันไม่ได้คาดหวังว่า Sp3000 จะได้มันเร็วขนาดนั้นนั่นคือทักษะระดับมืออาชีพ!


Cracked - ขบขัน แต่ใช่มีตัวเลือกมากมายจริง ๆ : P
Sp3000

@ Sp3000 ใช่ฉันต้องการให้แน่ใจว่าไม่มีใครสามารถลบสิ่งที่มีอยู่STDOUTและพิมพ์ตัวเลขได้ แต่ฉันคิดว่าฉัน จำกัด มันให้แคบเกินไป อ่า
FlipTack

การเปิดเผยsysทำให้มันง่ายขึ้นมากเนื่องจากเป็นจุดเริ่มต้นที่ดีสำหรับการค้นหา: P
Sp3000




2

อ็อกเทฟ 25 ไบต์, 9 ตัวเลข Cracked

__a__repmat(__one___,__)_

_ เป็นตัวละครที่ซ่อนอยู่


@StewieGriffin ขออภัย !! เพียง 9. ความผิดพลาดของฉัน ฉันขอโทษจริงๆ แก้ไขแล้ว
Luis Mendo


1
ขออภัย = P ฉันจะโพสต์การแทนที่ =)
ข้อผิดพลาด

@Stewie มันเป็นความผิดของฉันขอโทษ! ฉันจะโพสต์เวอร์ชันที่แก้ไขในภายหลังเนื่องจากโซลูชันดั้งเดิมของฉันแตกต่าง
หลุยส์เมนโด

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