มันจะหยุดหรือไม่ (ตำรวจ)


94

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

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

การส่งกำลังเป็นที่นิยมเป็นที่ทำงานได้และ crackable ในTIO อนุญาตให้ส่งไฟล์ที่ไม่สามารถเรียกใช้หรือถอดรหัสได้ใน TIO แต่โปรดรวมคำแนะนำในการดาวน์โหลด / เรียกใช้

กรุณาทำให้การป้อนข้อมูลของคุณกำหนดและสม่ำเสมอในการทำงานทั้งหมด ดูโพสต์เมตานี้สำหรับรายละเอียด

กรุณาอย่า "ใช้ RSA" หรืออะไรก็ตามที่มีความหมายต่อโจร ใช้ภาษาและคุณสมบัติที่คลุมเครือไม่ใช่การเข้ารหัสที่น่าเบื่อและการแฮช ฉันไม่สามารถบังคับใช้กฎนี้กับ แต่คุณสามารถคาดหวัง downvotes sha(input) === "abcd1234"กระหน่ำถ้าสิ่งที่คุณทำคือ


1สมมติว่าคอมพิวเตอร์ไม่ได้ถูกปิดทำลายพังทลายลงมาจากดวงอาทิตย์ร้อนจัดในความร้อนจากเอกภพหรือทำให้ TIO หมดเวลา 60 วินาที

2โปรแกรมจะต้องหยุดอย่างน้อยหนึ่งอินพุต ตราบใดที่มันวนซ้ำไปเรื่อย ๆ ในอินพุตหนึ่งและหยุดอีกอันก็ทำงานได้

3จะต้องเป็น <60 วินาทีเพื่อให้สามารถทดสอบรหัสบน TIO


กำลังมองหาการส่งที่ไม่ได้ติดตาม?

fetch("https://api.stackexchange.com/2.2/questions/135363/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>


1
@ LuisMendo สมมติว่าหน่วยความจำไม่มีที่สิ้นสุดเป็นเรื่องปกติ
programmer5000

1
@ programmer5000 ขอบคุณสำหรับการชี้แจง คุณควรรวมทั้งหมดนี้ไว้ในข้อความท้าทาย ผู้ตอบแบบสอบถามไม่คาดว่าจะอ่านความคิดเห็นทั้งหมด
Luis Mendo

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

3
@ xnor ฉันคิดว่าคุณควรจะต้องทำการตรวจสอบอินพุต
Stephen

1
@StepHen ใช้งานได้หากอินพุตที่มีรูปแบบไม่ถูกต้องยังสามารถแยกวิเคราะห์ได้โดยล่าม ถ้าฉันใส่สายผิดกฎหมายRข้อผิดพลาดทันทีโดยไม่ต้องเข้าฟังก์ชั่นเพื่อถอดรหัส ฉันจะยืนยันว่าไม่นับว่าเป็นการยกเลิกฟังก์ชั่นจริง ๆ
JAD

คำตอบ:


55

Malbolge 128 ไบต์แตกโดย KBRON111

(=&r:#o=~l4jz7g5vttbrpp^nllZjhhVfddRb`O;:('JYX#VV~jS{Ql>jMKK9IGcFaD_X]\[ZYXWVsN6L4J\[kYEhVBeScba%_M]]~IYG3Eyx5432+rpp-n+l)j'h%B0

มีความสุข!

(ใช่ฉันเรียนรู้ Malbolge เพียงแค่นี้ใช่มันใช้เวลานานอย่างไร้เหตุผลที่จะได้ทำงานในที่สุดและใช่มันคุ้มค่าโดยสิ้นเชิง)

ห่อดังนั้นคุณสามารถดูได้ในแบบเต็มเอ้อ "สง่าราศี":

(=&r:#o=~l4jz7g5vttbrpp^nllZjhhV
fddRb`O;:('JYX#VV~jS{Ql>jMKK9IGc
FaD_X]\[ZYXWVsN6L4J\[kYEhVBeScba
%_M]]~IYG3Eyx5432+rpp-n+l)j'h%B0

ฉันใช้ล่ามนี้เพื่อทดสอบ ฉันไม่แน่ใจว่ามันสำคัญ แต่ฉันคิดว่าฉันจะระบุในกรณี


2
นั่นคือล่าม TIO ใช้ btw
Dennis

2
โอ้ "ขอให้สนุก" เป็นการเติมที่ดี
ЕвгенийНовиков

26
คุณกระตุก Malbolge คือค่าเฉลี่ย
Draco18s

1
ฉันถูกประทับตรา ... ที่สุดที่ฉันได้รับ: จาก 13 อินพุทก่อนที่จะหยุด, มีเพียงหนึ่งและสามเท่านั้นที่มีผลกระทบใด ๆ หลังจากตรวจสอบอย่างละเอียดวิศวกรรมย้อนกลับผมพบว่าการป้อนข้อมูลครั้งแรกจะต้องมี6และสามเป็นหนึ่งในสี่: !, #, และ/ -แต่ดูเหมือนว่าการรวมกันจะไม่หยุดชะงัก ฉันวางมันไว้ที่นี่บางทีอาจจะมีคนฉลาดหาทางแก้ปัญหา หากใครต้องการฉันจะโพสต์ในวันพรุ่งนี้ว่าฉันจะได้รับสิ่งเหล่านี้อย่างไร แก้ไข: 6ตอนนี้ที่ผมคิดเกี่ยวกับมันโปรแกรมของฉันฉันเขียนเพื่อวัตถุประสงค์ในการวิศวกรรมย้อนกลับนี้อาจจะมีข้อผิดพลาดและการป้อนข้อมูลครั้งแรกอาจจะมีบางสิ่งบางอย่างอื่นมากกว่า ตัวละครที่สามยังคงยืน
Grzegorz Puławski

7
CrackedโดยKBRON111
Veedrac

23

JavaScript (ES6), 17 ไบต์, แคร็ก

x=>{for(;x==x;);}

บน TIO เนื่องจากฉันไม่ทราบวิธีการทำ Node.js readline บน TIO เพียงแค่ใส่อินพุตในการเรียกใช้ฟังก์ชัน สิ่งนี้เห็นได้ชัดสำหรับทุกคนที่รู้เรื่องนี้และไม่ใช่กับใครก็ตามที่ไม่เข้าใจ

ลองออนไลน์!

ตอบ:

คำตอบคือNaNตั้งแต่ใน NaN != NaNJavaScript,


2
แตกระแหง การใช้ภาษาแปลก ๆ !
programmer5000

3
คุณเดิมพัน :) ฉันชอบวิธีที่คุณมั่นใจดังนั้นนั่นคือสิ่งที่ฉันเลือกที่คุณแก้ไขมันสำหรับฉัน: P
Stephen

12
NaN == NaNเป็นเท็จในหลายภาษานอกเหนือจาก JavaScript ฉันจะไม่เรียกมันว่า "ภาษาแปลก ๆ "
Nayuki

9
ฉันเชื่อว่าNaN != NaNเป็นคุณลักษณะของตัวเลขจุดลอยตัว
undergroundmonorail

1
@undergroundmonorail: ถูกต้อง ความสัมพันธ์ระหว่างสองมาตรฐาน IEEE ตัวเลขทศนิยมสามารถข้างต้นเท่ากันด้านล่างหรือไม่เรียงลำดับ ผลลัพธ์การเปรียบเทียบจะถูกจัดเรียงถ้าตัวถูกดำเนินการอย่างใดอย่างหนึ่งหรือทั้งสองแบบเป็น NaN ชนิดใดก็ได้ (จุดลอยตัวไบนารี IEEE 754 มีรูปแบบบิต NaNจำนวนมาก: สิ่งใดก็ตามที่มีเลขชี้กำลังทุกตัวและ mantissa ที่ไม่ใช่ศูนย์คือ NaN โดยไม่คำนึงถึงบิตบิตมีกฎบางอย่างที่จะเข้าสู่ "payload" ของ น่านและแพร่กระจายที่ผ่านการดำเนินงานเหมือน+หรือmax()แต่คนส่วนใหญ่ไม่สนใจ: P)
ปีเตอร์ Cordes

14

JS (ES6), 67 ไบต์ ( แตก )

(x,y)=>{while(x!==y||Object.is(x, y)||!isFinite(x)||!isFinite(y));}

ฉันคิดว่าฉันไม่เลอะมันอาจมีวิธีง่ายๆที่ฉันไม่เห็น

ฉันขอขอบคุณข้อเสนอแนะใด ๆ นี่เป็นหนึ่งในโพสต์แรกของฉัน

(+0, -0) ใช่ js มีค่าเป็นลบ 0



ตอนนี้ฉันรู้แล้วว่าฉันไม่จำเป็นต้องตรวจสอบว่ามีxและyจำกัด แต่ฉันจะไม่แก้ไขเพราะมันแตกแล้ว น่าจะเป็น 38 ไบต์
Juan Tonina

10

Python 3.4, (40 ไบต์) แคร็ก

def f(x):
  while(x==x or not x==x):pass

4
ยินดีต้อนรับสู่ PPCG!
Martin Ender


12
ฉันรู้สึกว่าคุณควรเก็บไว้x==xในตัวแปรที่เรียกว่าto_beดังนั้นคุณสามารถทำการอ้างอิงแฮมเล็ต
Peter Cordes

@PeterCordes แต่นั่นจะทำให้คำตอบที่ไม่สามารถตรวจสอบได้
pppery

@ppperry: ใช่ฉันสังเกตเห็นว่าหลังจากที่ฉันมองไปที่รอยแตก : P
Peter Cordes

9

Javascript (ไม่ใช่ node.js)

x=>{while(x+"h");}

การส่งที่ต้องการไม่ได้ใช้การโยน

คำแนะนำสำหรับการแตกที่ต้องการ:

การส่งที่ต้องการไม่ได้เขียนทับ.toString()หรือใช้Set()อย่างใดอย่างหนึ่ง

รอยแตกที่ต้องการ:

Object.create(null)


ลิงก์การแก้ไขที่ถูกต้อง (ไม่ใช่ของฉันเพียงลิงก์ไปยังคำตอบของ Dom Hasting)
Stephen

แคร็ก # 2แคร็กโดยไม่ใช้throw(ยังทำให้เกิดข้อผิดพลาด)
สิทธิ์เดวิส

แตกอีกครั้งโดยไม่ใช้throwฉันเชื่อจริงเวลานี้เป็น Grant Davis 'ไม่ทำงานสำหรับฉัน ยังคงTypeErrors
Haumed Rahmani

2
คุณสามารถทำเช่นx=>{try{for(;x+"h";)}catch(e){for(;;)}}นั้นเพื่อให้ข้อผิดพลาดใด ๆ ที่จะส่งผลให้เกิดการวนซ้ำไม่รู้จบดังนั้นข้อผิดพลาดฟังก์ชั่นต้นแบบที่หายไป
Grant Davis

1
อันนี้ใช้งานได้เฉพาะในเบราว์เซอร์ แต่ไม่แน่ใจว่าทำไมมันถึง: D
jadkik94

8

C (gcc) , 75 ไบต์แตก

#include<stdio.h>
int main(){char c[9];while(1){scanf("%8s",c);printf(c);}}

ลองออนไลน์!

ฉันไม่เคยโพสต์ใน cops-n-robbers มาก่อน หวังว่านี่จะไม่ชัดเจนเกินไป

วิธีการแก้:

อินพุตของ "% s" ทำให้ segfault นี้ มีอีกหลายรายการที่สามารถใช้ได้ ทั้งหมดเป็นตัวprintfระบุเช่น "% n"
นี่คือprintfช่องโหว่แบบดั้งเดิม ใส่เพียงแค่รูปแบบสตริงมาจากการป้อนข้อมูลของผู้ใช้เพื่อให้ตัวprintfระบุใด ๆผ่านไปอย่างไม่ปลอดภัย


1
แตกระแหง
Conor O'Brien

8

จาวาสคริปต์ (ในเบราว์เซอร์), 79 ไบต์แตก

x=>{try{for(;x||x!=null||x!=void 0||x===null||x===void 0;);}catch(e){for(;;);}}

คุณควรเรียกใช้ในเบราว์เซอร์ล่าสุด (เช่น Firefox ESR ล่าสุด, Firefox ล่าสุด, Chromium ล่าสุด) การรันบนเบราว์เซอร์เก่า (เช่น Netscape 2, IE 4) จะไม่นับรวม

หมายเหตุ: เบราว์เซอร์ที่ถูกระงับเนื่องจากการหมดเวลาไม่นับการหยุดที่นี่

โปรดระวังอย่าทำให้เบราว์เซอร์ของคุณเสียหายเมื่อทำการทดสอบรหัสนี้และมีความสุขกับการปล้น ^ _ ^

document.all


ฉันสามารถใช้ setTimeout ได้ไหม?
ЕвгенийНовиков

@ ЕвгенийНовиковคุณสามารถเรียกใช้ฟังก์ชันนี้พร้อมพารามิเตอร์ใด ๆ แต่ดูเหมือนว่าใช้setTimeoutเป็นพารามิเตอร์ใช้งานไม่ได้
TSH

ความคิดคือการทำvar key=(()=>{setTimeout(args);return null})()แล้วcrackme(key)
ЕвгенийНовиков

ดูเหมือนว่าจะโกง
ЕвгенийНовиков



6

แกลบ 5 ไบต์Cracked

↑ε∞←ø

ลองออนไลน์!

คำอธิบายเล็กน้อยเนื่องจากภาษานี้ยังใหม่อยู่:

←øรับอิลิเมนต์แรกของรายการที่ว่างเปล่า: สิ่งนี้จะคืนค่าที่สามารถรับได้ทุกประเภทไม่ว่าจะเป็นประเภทคอนกรีตหรือฟังก์ชั่นซึ่งจะนำไปใช้กับอินพุต สร้างรายการที่ไม่มีที่สิ้นสุดซึ่งประกอบด้วยสำเนาของผลลัพธ์ก่อนหน้า (ซึ่งในกรณีส่วนใหญ่จะหมายถึงรายการของศูนย์ที่ไม่มีที่สิ้นสุด) ↑εใช้องค์ประกอบจากรายการนี้ตราบเท่าที่พวกเขาเป็น "เล็ก" คือค่าสัมบูรณ์ของพวกเขาคือ≤1; ในรายการที่ไม่มีที่สิ้นสุดของเลขศูนย์นี้จะไม่หยุด


@Veedrac นั้นเป็นทางออกที่ฉันตั้งใจจริงๆ
Leo

ถ้างั้นก็แตก!
Veedrac


5

Ruby , 31 ไบต์ ( ถอดรหัสโดย Eric Duminil )

0until(3.send(gets)==5rescue p)

ลองออนไลน์!

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



มีความสุขโดยวิธี! ไม่มีเมธอดที่3.methodsส่งคืน5หรือออกจากลูป
Eric Duminil

ยี้! ฉันค้นพบวิธีแก้ปัญหาอย่างเป็นอิสระ แต่ฉันก็มุ่งเน้นที่จะทำให้มันเท่ากับ5คิดว่าคำตอบที่ถูกต้องจะเกี่ยวข้องกับฟังก์ชั่นที่มันทำ ...
Ink Value


5

Bash 4.2, 14 ไบต์ ( แตก )

ลองทำอีกครั้ง

let ${1,,}
yes

สิ่งนี้ใช้ไม่ได้กับ TIO ซึ่งใช้ Bash 4.3 อินพุตคือผ่านอาร์กิวเมนต์บรรทัดคำสั่ง

บน Linux และเมื่อติดตั้ง gcc จะสามารถดาวน์โหลดและสร้าง Bash 4.2.53 ได้ดังต่อไปนี้

curl -sSL https://ftp.gnu.org/gnu/bash/bash-4.2.53.tar.gz | tar xz
cd bash-4.2.53
./configure
make -j

แตกระแหง จบลงด้วยการอ่านต้นฉบับ
Veedrac

4

เรติน่า , 78 ไบต์ ( แตก ) ( แคร็กด้วยโซลูชันที่ตั้งใจ )

^
1
+`^1(1+)
$1¶$&
s`(?<=^|¶)(1+)(?=¶)(?!.*¶\1+$)

¶(?!1+$)

^(1+)¶\1$

+`1
11

สนุกมากที่จะเขียนหวังว่ามันจะสนุก

ลองออนไลน์!

แคร็กด้วยโซลูชันที่ไม่ได้ตั้งใจและโซลูชันที่ตั้งใจไว้ภายในไม่กี่นาทีของกันและกัน โพสต์หนึ่งโพสต์ก่อนหนึ่งความคิดเห็นก่อน

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

11111 หรือการเป็นตัวแทนของ n-1 โดยที่ n เป็นจำนวนที่สมบูรณ์แบบ




ดังนั้นใครมีรอยแตก (ฉันโพสต์รอยแยกก่อน แต่ mbomb007 แสดงความคิดเห็นก่อน)
วัวต้มตุ๋น

@Cowsquack ทั้งสอง
programmer5000

4

Node.js, 23 ไบต์ ( แตก )

var crackme =
i=>{while({[i]:NaN}){}}

โซลูชันGrant Davis

{__proto__:null}

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

{"toString":process.exit}



@GrantDavis ทำได้ดีมาก) โซลูชันของคุณใช้งานได้กับเบราว์เซอร์เช่นกัน ฉันคิดว่าจะล้อมรอบด้วยลองจับ แต่ปฏิเสธความคิดนี้เพื่อให้รหัสสวย
ЕвгенийНовиков

4

Java 8, 99 ไบต์, แคร็ก

s->{try{Integer i=Integer.parseInt(s),c=i+32767;i+=32767;for(;i!=c;);}catch(Throwable t){for(;;);}}

Consumer<String>นี่คือแลมบ์ดาประเภท

Ungolfed:

s -> {
    try {
        Integer i = Integer.parseInt(s), c = i + Short.MAX_VALUE;
        i += Short.MAX_VALUE;
        while (i != c) ;
    } catch (Throwable t) {
        while (true) ;
    }
}

ลองออนไลน์! (โปรดทราบว่าโปรแกรมทดสอบจะหยุดทำงานในอินพุตว่าง แต่แลมบ์ดาเองจะไม่ได้!) (เช่นกันให้ใช้ 'อาร์กิวเมนต์' ไม่ใช่ 'อินพุต' บน TIO เนื่องจากโปรแกรมทดสอบใช้อาร์กิวเมนต์ไม่ใช่ STDIN)

คำตอบที่ตั้งใจไว้:

-32,767; งานนี้เพราะ Java ช่วยให้มีสองประเภทจำนวนเต็มและint เป็นวัตถุที่ล้อมรอบ นอกจากนี้ยังช่วยให้ Java แคชของs ที่กล่องผ่าน การตรวจสอบผู้ประกอบการตัวตนเพื่อให้ผ่านบางส่วนยกเลิกมวยและอัตโนมัติมวยหมายเลขใด ๆที่อยู่ในจะจบลงด้วยการเดียวกันวัตถุจากแคชและจึงจะเป็นเท็จIntegerIntegerintInteger-127127!=xx + 32767[-127, 127]Integeri != c



4

Bash 4.2, 10 ไบต์ ( แคร็ก )

let $1
yes

สิ่งนี้ใช้ไม่ได้กับ TIO ซึ่งใช้ Bash 4.3 อินพุตคือผ่านอาร์กิวเมนต์บรรทัดคำสั่ง

บน Linux และเมื่อติดตั้ง gcc จะสามารถดาวน์โหลดและสร้าง Bash 4.2.53 ได้ดังต่อไปนี้

curl -sSL https://ftp.gnu.org/gnu/bash/bash-4.2.53.tar.gz | tar xz
cd bash-4.2.53
./configure
make -j

1
แตกระแหง คุณทำให้ฉันอยู่ในแวดวงโดยคิดว่าเป็นเรื่องเกี่ยวกับหอยและเชื่อมโยงฉันเข้ากับเวอร์ชันที่ได้รับการแก้ไข: P นับการแตกที่ไม่ตั้งใจเป็นการแก้แค้นเล็ก ๆ น้อย ๆ ;)
Veedrac

เฮ้ไม่ใช่สิ่งที่ฉันจะทำ ฉันโพสต์เวอร์ชันที่เพิ่มความแข็งถ้าคุณต้องการลองดู
Dennis

3

Java: 1760 ( แคร็ก )

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

คำแนะนำ 1: สิ่งนี้มีอินพุตที่ถูกต้องตามทฤษฎีไม่สิ้นสุด แต่มีสิ่งหนึ่งที่ถูกต้องที่สุด


public class Main {

	public static void main(String[] a) {
		try {
			while (a.length < 2) {
				int i = 0;
			}
			boolean invalid = 1 < 0;
			char l = '_';
			char h = '-';
			char[] DATATWO = a[0].toCharArray();
			char[] DATATOW = a[1].toCharArray();
			int length = DATATOW.length;
			if (DATATWO.length != length) {
				invalid = 1 > 0;
			}
			int transmissionStartIndex = 0;
			for (int i = 0; i < length; i++) {
				if (DATATWO[i] == l && DATATOW[i] == l) {
					transmissionStartIndex = i;
					break;
				}
			}
			int DATAONE = 0, reg = 0;
			boolean read = 1 < 0, full = 0 < 1;
			int bytes_read = 0;
			for (int i = transmissionStartIndex; i < length; i++) {
				if (DATATOW[i] == l && DATATOW[i + 1] == h) {
					bytes_read++;

					if (bytes_read == 8) {
						read = DATATWO[i] == h;
					} else if (bytes_read == 9) {
						invalid = (DATATWO[i] == h || invalid);
						System.out.println(invalid);
					} else if (bytes_read == 18) {
						System.out.println(invalid);
						invalid = (DATATWO[i] == h || invalid);
						if (invalid) {
							System.out.println("i36 " + DATATWO[i] + " " + h);
						}
						full = 1 > 0;
					} else if (bytes_read < 8) {
						DATAONE += (DATATWO[i] == h ? 1 : 0) << (7 - bytes_read);
					} else if (bytes_read < 18) {
						reg += (DATATWO[i] == h ? 1 : 0) << (8 - (bytes_read - 9));
					} else if (bytes_read > 18) {
						invalid = 1 > 0;
					}
					System.out.println(a[0]);
					System.out.println(new String(new char[i]).replace("\0", " ") + "|");
					System.out.println(a[1]);
				}
			}

			while (!(Integer.toHexString(DATAONE).equals("0x2b") && (read)
					&& Integer.toHexString(reg).equals("0xa6"))) {

				System.out.println(System.currentTimeMillis());
				try {
					Thread.sleep(1);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}

		} catch (Exception e) {
			while (true) {
			}
		}

	}
}

ลองออนไลน์!


อาร์กิวเมนต์ว่างสองรายการดูเหมือนจะใช้งานได้
Okx

นอกจากนี้ใจเพิ่มลิงค์ tio? ฉันคิดว่าสิ่งที่คุณต้องทำคือเปลี่ยน main เป็น Main
Okx

1
แตกออกจากข้อผิดพลาด
user3033745

แคร็ก - ไม่มีข้อผิดพลาดเฉพาะรุ่น
Okx

3

Braingolf , 18 ไบต์แคร็ก

1+[#£-0!e>:$_1>|]

ลองออนไลน์!

Liiiitle ค่อนข้างหนักกว่าอันสุดท้ายฉันจะเริ่มเขียนของจริงหลังจากนี้

คำตอบคือ 163


ผู้ชายนี่น่าจะเป็นตู้เอทีเอ็มที่รอดตายเพียงแห่งเดียว หมายเหตุ: iไม่ทำงาน
Erik the Outgolfer

คำเตือน: นี่เป็นจริง 19 ไบต์ ( £) และทำไมไม่-1ทำงาน นี่เป็นเรื่องยุ่งยาก
Erik the Outgolfer

@EriktheOutgolfer มี 17 ตัวอักษรและ 18 ไบต์
มนุษย์โดยรวม

@tallyallyhuman ฉันสาบานว่าฉันได้อ่าน "19 UTF-8 bytes, 18 chars" (เปิดใช้งาน userscript) ...
Erik the Outgolfer


3

JavaScript (ES7), 41 ไบต์ ( ถูกแฮ็ก & แตก )

แก้ไข: แก้ไขเพื่อป้องกันไม่ให้ crashing เมื่อไม่มีการป้อนข้อมูลเลย (ขอบคุณ @totallyhuman สำหรับการสังเกต)


อาจมีหลายวิธีแก้ไข แต่วิธีที่คาดหวังนั้นค่อนข้างง่าย

(x=0)=>{for(;~x/x.length**3!=-2962963;);}

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

"8e7" (ตัวเลขในรูปแบบทางวิทยาศาสตร์ส่งผ่านเป็นสตริง)
เนื่องจาก: ~ "8e7" / "8e7" .length ** 3 = -80000001 / 3 ** 3 = -80000001/27 = -2962963


2
ไม่มีการป้อนข้อมูลในอันนี้ แต่ฉันไม่ต้องการที่จะแตกมันแบบนั้น ... เว้นแต่ว่าเป็นทางออกที่ตั้งใจไว้ : P
มนุษย์

@tallyallyhuman เอ่อไม่ใช่ทางออกที่ตั้งใจไว้ :-)
Arnauld


2
อัปเดต: มีวิธีแก้ปัญหาแบบยาวขนาด 3 ไบต์
ЕвгенийНовиков

3

Bash + Utils (ถอดรหัสโดย Dennis), 74 ไบต์

ฉันหวังว่าคุณจะสนุกกับ tar เพราะมันเป็นยูทิลิตี้เดียวที่คุณสามารถใช้ได้

cp /bin/tar .
env -i PATH=$PWD I=$? /bin/bash -r -c "$1"
while :;do :;done

ลองออนไลน์!

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

tar -cf --checkpoint=1 --checkpoint-action=exec="/bin/kill $I" .



@Dennis Nice! ฉันโพสต์รอยแตกที่ตั้งใจไว้ซึ่งซับซ้อนกว่านี้เล็กน้อย
Sisyphus

3

Mathematica, 36 26 ไบต์ ( แตก )

#0[#;$IterationLimit=∞]&

ห่วงสั้นมาก#0[#;∞]ที่เพิ่งจะยังคงทำงานของตัวเองซ้ำแล้วซ้ำจนกว่าจะเกิดความผิดพลาดเคอร์เนลของคุณ ... (คน$IterationLimitเป็นเพียงเพื่อให้แน่ใจว่าคุณได้รับการติดตลอดไปสำหรับปัจจัยการผลิตมากที่สุด)

ลองใช้กับ Wolfram Sandbox! - ถ้าคุณจะติดอยู่ในวง จำกัด คุณสามารถรอจนกว่าคุณจะหมดเวลาหรือคุณสามารถกดสแควร์ "ยกเลิกการประเมินผล" (unnamed)ไอคอนทางด้านซ้ายของชื่อโน้ตบุ๊ค

หมายเหตุ : ฟังก์ชั่นนี้จะเปลี่ยนการ$IterationLimitตั้งค่าของคุณ




3

C #, 118 ไบต์ ( แตก )

using System;_=>{while(1>0){try{if(Nullable.GetUnderlyingType(Type.GetType(Console.ReadLine()))!=null)break;}catch{}}}

ฉันไม่ได้คาดหวังว่าสิ่งนี้จะใช้เวลานานเกินไป แต่มันน่าอึดอัดใจกว่าที่เป็น

โดยทั่วไปใด ๆ เรียน Nullable ชื่อเต็มของการทำงาน แต่ก็เป็นที่น่าอึดอัดใจที่จะหาที่มันมีลักษณะดังต่อไปนี้เป็นวิธีที่ง่ายต่อการค้นหาสายนี้คือการทำ
System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
typeof(int?).FullName



3

C, 140 ไบต์ ( แตก )

n,i;f(){float x,y,z;for(scanf("%d %d",&n,&z,x=y=0);~((int)x-(int)(1/sqrt(y*2)));x*=(1.5-y*x*x))y=(x=z)/2,i=n-((*(int*)&x)/2),x=*(float*)&i;}

หวังว่าจะมีอินพุทไม่ใกล้เคียงกับที่ตั้งใจไว้มากเกินไปที่ทำให้มันหยุด แต่ลองมาดูกัน

ลองออนไลน์!



3

JavaScript (ES7), 73 ไบต์ ( แคร็ก !)

q=>{r=(n,i=0)=>i>1e3?n:r(n*16807%(2**31-1),i+1);while(r(q)!=627804986){}}

ไม่ต้องการโซลูชัน: กำลังดุร้าย รอยแตกที่ต้องการเกี่ยวข้องกับคณิตศาสตร์

โปรดทราบว่ามีหลายวิธี (4194304) เนื่องจากโมดูโล



3

สมอง , 170 ไบต์แตก!

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

ลองออนไลน์!


ยินดีต้อนรับสู่เว็บไซต์! คุณสามารถบันทึก 11 ไบต์โดยการลบบรรทัดใหม่จากรหัสของคุณ
Sriotchilism O'Zaic

ฉันลืมมันเป็นรหัสกอล์ฟขอบคุณ!
Jerry


ทางออกที่ถูกต้อง! ฉันประเมินว่ามีอยู่ไม่น้อย สำหรับทุกคนที่กำลังแก้ปัญหา / บังคับให้เดรัจฉานจะต้องตั้งใจ [az]
Jerry

สำหรับแต่ละอักขระ 4 ตัวมีค่า 1 ตัวของอักขระตัวสุดท้ายที่ทำให้โปรแกรมหยุดทำงาน ดังนั้นจึงมีวิธีแก้ปัญหา 256 ^ 4 = 4294967296 โดยสมมติว่าคุณสามารถเข้าnulสู่สมอง BTW คุณสามารถลบ 2 >save แรก2 ไบต์
user202729

3

JavaScript ES6 (Node.js> = 6.0) , 326 ไบต์ (ปลอดภัย)

((v,e=require('events').EventEmitter.prototype,l=_=>{while(1);},P=Proxy,p=process)=>(p.kill=p.exit,e.listeners=new P(e.listeners,{apply:(t,c,a)=>a[0]=='exit'?[]:t.apply(c,a)}),e.removeAllListeners=new P(e.removeAllListeners,{apply:(t,c,a)=>a[0]=='exit'?c:t.apply(c,a)}),p.on('exit',l),i=>{try{v(i)}catch(o){}l()}))(s=>eval(s))

เรียบง่ายกว่าความท้าทายอื่น ๆ ของฉันคือฉันไม่พยายามทำให้งงงวยวิธีการแก้ปัญหาอีกต่อไป คราวนี้process.kill()จะไม่ทำงาน

"delete process._events.exit;process.exit()"

ลองออนไลน์!


ว้าว! งานที่ดี!
programmer5000

ดูเหมือนว่าคุณจะเป็นผู้ชนะแม้ว่าฉันจะคาดหวังรหัสที่สั้นกว่ามากฮิ
Piyin

3

Swift 3, 14 bytes ( แคร็ก )

while !false{}

เพื่อแก้ปัญหานี้ให้ใส่รหัสของคุณก่อนหรือหลังคำสั่งนี้

  • โซลูชันของคุณต้อง:
    • รักษาคำสั่งนี้ให้เหมือนเดิมโดยไม่ต้องแก้ไขโค้ด
    • ที่จริงปล่อยให้คำสั่งนี้ทำงาน
      • เพียงแค่แสดงความคิดเห็นออกมาโทรfatalError()ฯลฯ ก่อนที่จะไม่นับ
    • ปรับเปลี่ยนพฤติกรรมของคำสั่งนี้เพื่อป้องกันไม่ให้วนซ้ำตลอดไป
  • การแก้ปัญหาไม่เกี่ยวข้องกับการทำงานผิดพลาดของโปรแกรม

ฉันไม่รู้จัก Swift แต่ฉันคิดว่าการเพิ่มตัวจับเวลาก่อนรหัสนี้เพื่อออกหลังจากไม่กี่วินาทีจะเป็นไปตามเกณฑ์

@Yimin heh, ฉลาด แต่มันไม่ได้ปรับเปลี่ยนความหมายของคำสั่งนี้ซึ่งเป็นสิ่งที่ฉันกำลังมองหาเมื่อฉันพูดว่า "ปรับเปลี่ยนพฤติกรรมของคำสั่งนี้"
Alexander

คุณแน่ใจหรือว่าวิธีแก้ปัญหาใช้งานได้? ล่ามกำลังตะโกนใส่ambiguous semanticsฉัน
Daniel

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


2

cQuents , 2 ไบต์ ( แคร็ก 1 ) ( แคร็ก 2 )

:A

โปรดทราบว่าสิ่งนี้จะกระทบกับขีด จำกัด เอาต์พุต 128 KiB บน TIO อย่างรวดเร็วทำให้หยุดทำงาน แต่เมื่อทำงานภายในเครื่องมันจะวนซ้ำตลอดไปยกเว้นในอินพุตที่ทำให้แตก การค้นหาอินพุตนั้นควรจะค่อนข้างง่าย จนกว่าคุณจะทำเช่นนั้น:Aจะยื่นลิ้นสามเหลี่ยมออกมาที่คุณ

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

รอยแตก:

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

ลองออนไลน์!


แตก? (ข้อผิดพลาดในการป้อนข้อมูลที่ว่างเปล่า)
Luis Mendo


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

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