Ini adalah utas polisi. Utas perampok ada di sini .
Tantangan Anda adalah membuat program yang berjalan selamanya tanpa berhenti 1 , kecuali jika mendapat input atau input tertentu 2 . Jika menerima input itu, ia harus berhenti dalam waktu terbatas 3 . Ini adalah kode-golf , jadi jawaban terpendek yang belum dipecahkan oleh perampok dalam waktu satu minggu setelah memposting kemenangan. Setelah minggu berlalu, tandai jawaban Anda sebagai aman dan tunjukkan input penghentian (dalam a > ! spoiler quote
). Jika seorang perampok meretakkan kiriman Anda, tandai sebagai peretas dan tampilkan input penghentian (dalam a > ! spoiler quote
).
Pengajuan lebih disukai menjadi runnable & crackable di TIO . Pengajuan yang tidak dapat dijalankan atau retak di TIO diizinkan, tetapi harap sertakan instruksi untuk mengunduh / menjalankannya.
Silakan tentukan input Anda deterministik, dan seragam di semua jalur. Lihat meta posting ini untuk detailnya.
Tolong, jangan "menerapkan RSA" atau apa pun yang berarti bagi para perampok. Gunakan bahasa dan fitur yang tidak jelas, bukan enkripsi dan hashing yang membosankan. Saya tidak bisa menegakkan ini dengan aturan, tetapi Anda dapat mengharapkan downvotes deras jika semua yang Anda lakukan adalah sha(input) === "abcd1234"
.
1 Dengan anggapan bahwa komputer tidak dimatikan, dihancurkan, ditelan matahari, kepanasan karena kematian panas alam semesta, atau terbentur batas waktu TIO tahun 60an.
2 Program harus berhenti pada setidaknya satu input. Selama itu berulang selamanya pada satu input dan berhenti pada yang lain, ia bekerja.
3 Ini harus <60 detik, sehingga kode dapat diuji pada TIO.
Mencari kiriman yang tidak retak?
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>
sumber
R
kesalahan langsung, bahkan tanpa memasukkan fungsi untuk retak. Saya berpendapat bahwa itu tidak dihitung sebagai benar-benar menghentikan fungsi.Jawaban:
Malbolge, 128 byte, dipecahkan oleh KBRON111
Selamat bersenang-senang!
(Ya, saya belajar Malbolge hanya untuk ini. Ya, butuh waktu yang sangat lama untuk akhirnya bisa bekerja. Dan ya, itu benar-benar sepadan.)
Dibungkus, sehingga Anda dapat melihatnya secara penuh, eh, "kemuliaan":
Saya menggunakan juru bahasa ini untuk mengujinya; Saya tidak yakin apakah itu penting, tapi saya pikir saya akan menentukan siapa tahu.
sumber
6
dan yang ketiga adalah salah satu dari empat:!
,#
,/
dan-
. Tetapi kombinasi tersebut tampaknya tidak memperbaiki penghentian. Saya taruh di sini, mungkin seseorang yang lebih pintar menemukan solusi. Jika ada yang mau, saya akan memposting besok bagaimana saya mendapatkan input ini. EDIT: Sekarang saya berpikir tentang hal itu, program saya yang saya tulis untuk tujuan rekayasa balik ini mungkin memiliki bug, dan input pertama mungkin sesuatu yang lain dari pada6
. Karakter ketiga masih berdiri.JavaScript (ES6), 17 byte, Retak
Pada TIO, karena saya tidak tahu bagaimana melakukan readline Node.js pada TIO, cukup masukkan input pada pemanggilan fungsi. Ini jelas bagi siapa saja yang mengetahuinya, dan tidak bagi siapa pun yang tidak.
Cobalah online!
Menjawab:
sumber
NaN == NaN
salah dalam banyak bahasa selain JavaScript. Saya tidak akan menyebutnya "keanehan bahasa".NaN != NaN
ini adalah fitur angka floating point+
ataumax()
, tetapi kebanyakan orang tidak peduli: P)JS (ES6), 67 byte ( Retak )
Saya pikir saya tidak mengacau, mungkin ada solusi mudah yang tidak saya lihat.
Saya menghargai umpan balik, ini adalah salah satu posting pertama saya
sumber
x
dany
terbatas, tetapi saya tidak akan mengedit karena sudah retak. Bisa jadi 38 bytePython 3.4, (40 bytes) Retak
sumber
x==x
dalam variabel bernamato_be
, sehingga Anda bisa membuat referensi Hamlet.Javascript (BUKAN node.js)
Kiriman yang diinginkan tidak menggunakan lemparan.
Petunjuk untuk retakan yang diinginkan:
Retakan yang diinginkan:
sumber
throw
(masih memberikan kesalahan)throw
, saya percaya nyata saat ini karena Grant Davis 'tidak bekerja untuk saya. MasihTypeError
s.x=>{try{for(;x+"h";)}catch(e){for(;;)}}
sehingga setiap kesalahan akan menghasilkan loop tanpa akhir sehingga kesalahan fungsi prototipe yang hilang (atau kesalahan) akan menghasilkan loop tanpa akhir.C (gcc) , 75 byte Retak
Cobalah online!
Saya belum pernah memposting di polisi-perampok sebelumnya. Semoga ini tidak terlalu jelas.
Larutan:
sumber
JavaScript (di Browser), 79 byte Retak
Anda harus menjalankannya di browser terbaru (seperti ESR Firefox terbaru, Firefox terbaru, Chromium terbaru). Berjalan di browser lama (seperti Netscape 2, IE 4) tidak masuk hitungan.
Catatan: Dihentikan oleh browser karena waktu habis tidak berhenti di sini.
Selalu berhati-hati agar browser Anda tidak macet saat menguji kode ini, dan selamat merampok ^ _ ^
sumber
setTimeout
sebagai parameter tidak berfungsi.var key=(()=>{setTimeout(args);return null})()
dan kemudiancrackme(key)
PHP (dipecahkan oleh Vicente Gallur Valero), 65 byte
Cobalah online!
Lebih sulit daripada yang terlihat. Diedit agar dimungkinkan pada TIO, dengan biaya sejumlah byte. Mengambil input via
$argv[1]
.sumber
Sekam , 5 byte Retak
Cobalah online!
Sedikit penjelasan, karena bahasa ini masih cukup baru:
←ø
mendapatkan elemen pertama dari daftar kosong: ini mengembalikan nilai yang dapat mengasumsikan tipe apa pun, baik itu tipe konkret atau fungsi, yang kemudian akan diterapkan pada input.∞
membuat daftar tak terbatas yang terdiri dari salinan hasil sebelumnya (yang dalam banyak kasus akan berarti daftar nol tanpa batas).↑ε
mengambil elemen dari daftar ini selama mereka "kecil" yaitu nilai absolutnya adalah ≤1; pada daftar nol yang tidak terbatas ini tidak akan pernah berhenti.sumber
Braingolf , 4 byte ( Retak )
Cobalah online!
Suuuper mudah, tapi
mari kita lihat berapa lamaMenjawab:
sumber
Ruby , 31 byte ( dipecahkan oleh Eric Duminil )
Cobalah online!
Perhatikan bahwa ini perlu dijalankan di lingkungan di mana tidak ada jejak baris baru di hasil
gets
, atau kalau tidak mungkin untuk membuatnya berhenti (saya pikir) karena apa pun yang berakhir pada baris baru akan kesalahan dan mengenai penyelamatan.sumber
3.methods
mengembalikan5
atau keluar dari loop.5
dengan berpikir bahwa jawaban yang benar akan melibatkan fungsi yang dilakukannya ...Bash, 25 byte ( Retak )
Terinspirasi oleh Dennis. Cobalah online.
sumber
Bash 4.2, 14 byte ( retak )
Mari kita coba ini lagi.
Ini tidak berfungsi pada TIO, yang menggunakan Bash 4.3. Input melalui argumen baris perintah.
Di Linux dan dengan gcc diinstal, Bash 4.2.53 dapat diunduh dan dibangun sebagai berikut.
sumber
Retina , 78 byte ( Retak ) ( Retak dengan Solusi yang Dituju )
Cukup menyenangkan untuk menulis, semoga menyenangkan untuk dipecahkan
Cobalah online!
Retak dengan solusi yang tidak diinginkan dan solusi yang dimaksud dalam satu menit dari satu sama lain. Satu diposting pertama, satu komentar pertama.
Solusi yang dimaksudkan:
sumber
Node.js, 23 byte ( Retak )
Berikan solusi Davis
Solusi saya
sumber
Java 8, 99 byte, Retak
Ini adalah lambda dari tipe itu
Consumer<String>
.Tidak Disatukan:
Cobalah online! (perhatikan bahwa program pengujian akan mogok pada input kosong, tetapi lambda itu sendiri tidak akan!) (juga, gunakan 'argumen' bukan 'input' pada TIO, karena program pengujian menggunakan argumen, bukan STDIN)
Jawaban yang Dimaksud:
sumber
Bash 4.2, 10 byte ( Retak )
Ini tidak berfungsi pada TIO, yang menggunakan Bash 4.3. Input melalui argumen baris perintah.
Di Linux dan dengan gcc diinstal, Bash 4.2.53 dapat diunduh dan dibangun sebagai berikut.
sumber
Jawa: 1760 ( Retak )
Saya merasa terlalu kejam untuk golf yang satu ini, jadi saya hanya mengaburkan nama-nama variabel, dan membuatnya 'berantakan'. Sebenarnya itu sangat kejam, bahwa saya akan mengirim petunjuk dari waktu ke waktu, supaya saya bisa melihatnya retak.
Petunjuk 1: ini memiliki input valid secara teoritis tak terbatas, tetapi ada satu yang paling 'Benar'
Cobalah online!
sumber
Braingolf , 18 byte Retak
Cobalah online!
Liiiitle sedikit lebih sulit daripada yang terakhir, saya akan mulai menulis yang asli setelah ini
sumber
i
tidak berfungsi.£
). Dan mengapa tidak-1
berhasil? Ini rumit.JavaScript (ES7), 41 byte ( Diretas & Retak )
Sunting: diperbaiki untuk mencegahnya mogok ketika tidak diberi input sama sekali (terima kasih @totallyhuman untuk memperhatikan)
Beberapa solusi mungkin ada, tetapi yang diharapkan relatif sederhana.
Solusi yang dimaksudkan:
sumber
Bash + Utils (Cracked oleh Dennis), 74 byte
Saya harap Anda menikmati tar, karena itu satu-satunya utilitas yang dapat Anda gunakan.
Cobalah online!
Retak yang diinginkan
sumber
Mathematica,
3626 byte ( retak )Sebuah loop
#0[#;∞]
yang sangat singkat yang hanya akan terus berjalan sendiri sampai crash kernel Anda ... (Ini$IterationLimit
hanya untuk memastikan Anda terjebak selamanya untuk sebagian besar input).Cobalah di Wolfram Sandbox! - jika Anda terjebak dalam loop tak terbatas, Anda dapat menunggu sampai waktu Anda habis, atau Anda dapat menekan ikon "batalkan evaluasi" kotak di sebelah kiri judul buku catatan
(unnamed)
.CATATAN : fungsi ini mengubah
$IterationLimit
pengaturan Anda .sumber
JavaScript (Node.js), 18 byte ( Retak )
Cobalah online! Menjawab:
sumber
Symbol()
akan berhasil.C #, 118 byte ( Retak )
Saya tidak berharap ini berlangsung terlalu lama tetapi lebih canggung daripada yang terlihat.
sumber
C, 140 byte ( Retak )
Mudah-mudahan tidak ada terlalu banyak input tidak-bahkan-dekat-dengan-yang dimaksudkan yang membuatnya berhenti, tapi mari kita lihat.
Cobalah online!
sumber
JavaScript (ES7), 73 byte ( Retak !)
Solusi yang tidak diinginkan: brute force. Retakan yang diinginkan melibatkan matematika.
Perhatikan bahwa ada banyak solusi (4194304) karena modulo.
sumber
brainfuck , 170 byte retak!
Cobalah online!
sumber
nul
ke brainfuck. BTW Anda dapat menghapus dua>
simpan pertama 2 byte.JavaScript ES6 (Node.js> = 6.0) , 326 byte (Aman)
Jauh lebih sederhana daripada tantangan saya yang lain , saya tidak lagi mencoba untuk mengaburkan pendekatan untuk solusi, yang menyelamatkan saya banyak byte. Kali ini,
process.kill()
tidak akan berhasil.Cobalah online!
sumber
Swift 3, 14 bytes ( Retak )
Untuk mengatasinya, tulis kode Anda sebelum atau sesudah pernyataan ini.
fatalError()
, dll. Sebelum tidak masuk hitungan.sumber
ambiguous semantics
saya.cQuents , 2 byte ( Cracked 1 ) ( Cracked 2 )
Perhatikan bahwa ini akan dengan cepat mencapai batas output 128 KiB pada TIO, menyebabkannya berhenti, tetapi ketika dijalankan secara lokal akan berulang selamanya, kecuali pada input yang merusaknya. Menemukan input itu seharusnya cukup mudah. Sampai Anda melakukannya,
:A
akan tetap menjulurkan lidah segitiga pada Anda.Perhatikan juga bahwa ini seharusnya adil
A
tetapi saya memecahkan mode implisit tadi malam. Pada versi interpreter yang lebih lamaA
akan bekerja dengan baik.Retak:
Cobalah online!
sumber