Ini adalah utas perampok. Utas polisi ada di sini .
Tantangan Anda adalah untuk memecahkan pengajuan polisi dengan menemukan input yang membuatnya berhenti. Anda tidak perlu mencari tahu mengapa, atau semua input yang membuatnya berhenti jika ada lebih dari satu, atau input yang dimaksudkan oleh polisi, hanya satu input yang akan dilakukan.
Setelah Anda memecahkan kiriman, kirimkan tautan ke sana dalam komentar atau edit ke pos polisi. Anda juga dapat menandai kiriman Anda untuk mod untuk mengeditnya di pos polisi. Juga, poskan input yang digunakan dan tautan ke pos polisi dalam jawaban di utas ini. Perampok yang memecahkan sebagian besar pengiriman, menang.
Banyak orang dapat memposting retakan ke pengiriman polisi yang sama, selama mereka berbeda.
(Jika SE mengonversi jawaban duplikat Anda ke komentar, Anda mungkin ingin memberi suara pada permintaan fitur ini )
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.innerText = 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
Jawaban:
Malbolge, Gagang Pintu
Cobalah online (Terima kasih, Dennis !)
Input untuk Windows:
F_⌠1234567890
Input pada sistem berbasis Linux menggunakan ISO-8559-1:
F_ô1234567890
Inti dari bagaimana program Malbolge bekerja adalah bahwa itu tergantung pada perilaku penerjemah Malbolge yang menyebabkan loop tak terbatas jika menemui instruksi apa pun yang tidak antara 33 dan 126. Program ini dibangun sedemikian rupa sehingga input Anda akan memungkinkan Anda untuk memodifikasi satu instruksi.
Saya memodifikasi interpreter untuk membuang status memori program pada awal eksekusi dan juga untuk menghasilkan kode sumber yang 'dinormalisasi' yang mengambil bentuk daftar kode op yang akan dijalankan selama eksekusi program. Dengan informasi itu, Anda dapat (perlahan) menentukan bahwa meskipun program mengambil 13 input, hanya input 1 dan 3 yang benar-benar penting.
Melihat melalui kode dinormalkan dan dump memori (dan sentuhan bantuan debugger) saya merancang yang berikut:
Di mana
op
disebut "op" tritwise yang dijelaskan dalam spesifikasi. Dengan menggunakan informasi ini, Anda dapat menulis program sederhana yang mengulangi input yang mungkin (0 hingga 255) dan menemukan semua solusi yang memenuhi kriteria di atas. Saya telah menemukan 2219 solusi yang mungkin, beberapa di antaranya mungkin bukan solusi yang berfungsi (Anda tidak dapat memasukkan karakter yang diperlukan). Secara khusus input di atas didasarkan pada solusi:(Input 1 = 70, Input 3 = 244)
sumber
F_ô
omong-omong.JavaScript (di Browser)
Ini palsu, secara mengejutkan
Sunting: mengapa
document.all
falsy ?sumber
JS (ES6), Juan Tonina
Butuh sedikit mencari
Object.is
untuk menemukan. Pada dasarnya,+0 === -0
karena===
memeriksa mereka sebagai angka, dan0
terbatas, tetapiObject.is
melihat+0
dan-0
sebagai objek yang berbeda. Polisi yang sangat pintar :)Cobalah online!
sumber
Python, Siphor
Kami hanya mendefinisikan ulang kesetaraan untuk berperilaku tepat seperti yang disyaratkan untuk menghentikan program.
sumber
__eq__
untukraise
...0
: pclass A:__eq__=lambda s,o:0
danf(A())
melakukan pekerjaannya.Braingolf
Jumlah apa pun yang kurang dari
0
berfungsi.Cobalah secara Online!
sumber
PHP, Sisyphus
(-0[0)> deal with it=1
Fungsi parse_str mengubah spasi dan karakter lain menjadi garis bawah. Jika Anda meletakkan [digunakan untuk pembatas Array tanpa menutup, itu mengubahnya menjadi garis bawah tetapi memiliki efek tidak menerjemahkan spasi berikut (saya tidak tahu mengapa).
Cobalah online!
sumber
JavaScript (Node.js), Adnan
[]
dan[]
sepertinya berhasil. Saya mencoba banyak dari mereka termasuknull
,undefined
,NaN
...[] >= [] && [] <= [] && [] != []
mengevaluasi ke true.Moral dari cerita: JavaScript itu aneh .
Cobalah online!
sumber
JavaScript (ES7), Arnauld
Standar
"8e7"
adalah solusiRetas
Tidak perlu menghitung angka ini, kita dapat mendefinisikan kembali
length
propertiIni diatur
~x/x.length**3!=-2962963
kefalse
Prioritas operator
~
bitwise bukan yang pertama** exponentiation
kedua/ division
ketigasumber
Bash, Veedrac
Cobalah online!
Dari halaman
ld.so(8)
manual:sumber
/bin/yes
, Tetapi itu mungkin, dalam hal ini env var ini akan diabaikan.Mathematica, JungHwan Min
Tidak tahu apakah ini solusi yang dimaksudkan, tetapi ia meneruskan dalam ekspresi yang tidak dievaluasi sampai direferensikan sebagai
#
di dalam fungsi, yang akan menyebabkannya kembali dari fungsi segera tanpa melakukan evaluasi lebih lanjut. Anda dapat melihat bahwa fungsi tersebut sebenarnya dipanggil (alih-alih hanya melempar pengecualian bahkan sebelum memanggil fungsi) dengan mengubah fungsi menjadi:Yang memang akan mencetak
stop
sebelum melempar kesalahan.sumber
Unevaluated[Abort[]]
, tetapi hal yang sama.)Retina , PunPun1000
Cobalah online!
Setiap input dengan n
1
s di mana jumlah pembagi dari n + 1 sama dengan n +1 harus bekerja.sumber
Rubi
tanpa baris baru.
3.send('exit')
tentu tidak sama dengan5
, tetapi dijalankanKernel#exit
:Ini mungkin untuk memanggil
exit
pada3
karena :abort
juga berfungsi:sumber
JavaScript (Node.js) , programmer5000
Sudah retak, tapi milik saya sedikit berbeda :) Tidak punya cukup perwakilan untuk berkomentar di polisi. Juga merasa bebas untuk mengedit untuk memperbaiki pemformatan, posting pertama saya di sini.
Terutama saya set
__proto__
sama dengan fungsi yang melempar. Diambil dari melihat halaman Mozilla untuk proto. (Maaf, perwakilan rendah, tidak dapat memposting tautan.)Cobalah online!
EDIT: Dapatkan beberapa perwakilan, jadi inilah tautannya: Mozilla
__proto__
sumber
Bash, Sisyphus
Untungnya,
kill
adalah shell builtin.Cobalah online!
sumber
R, Jarko Dubbeldam
Pertama kali berkontribusi apa pun, jadi sebutkan kesalahan yang saya buat dalam format.
Cukup yakin ini valid. Hanya penulisan ulang is.list (), kan?
sumber
Javascript, programmer5000
Panjang string maks
Menggunakan string dengan panjang kurang dari yang didukung mesin Anda. Saat menambahkan
"h"
ke string ini, kesalahan dilemparkan. Cobalah online!Blok asal silang
Sangat terinspirasi oleh jawaban dari @ jadkik94 , tetapi bekerja di mana-mana. Membuat iframe lintas asal, lalu melewati
.contentWindow
iframe tersebut. Ini gagal ketika fungsi mencoba menggunakan nilai karena keamanan lintas asal.Nilai primitif
Varian dari
.toString()
jawaban - ini hanya menggunakantoPrimitive
sebagai gantinya. Ini mengembalikan objek sebagai nilai primitif, yang Javascript tidak tahu bagaimana menangani (sehingga melempar kesalahan). Cobalah online!sumber
Node.js, Adnan
{}
dan{}
atau 2 objek adalah dua input. Saya bahkan tidak mengerti bagaimana ini bekerja.Inilah logika perbandingan objek menakjubkan JS:
sumber
JavaScript (Babel Node) , Conor O'Brien
(Repost, secara tidak sengaja dimasukkan ke dalam polisi.) Tidak yakin apa yang dimaksudkan tetapi desimal positif yang tidak besar semuanya bekerja.
Kurasa aku masih belum bisa berkomentar di Polisi.
Cobalah online!
sumber
Javascript (BUKAN node.js) , programmer5000
Ini tidak dapat ditambahkan karena ia menciptakan objek yang tidak memiliki toString karena
Set
prototipe yang baru tidak melekat dariObject
.memasukkan:
Cobalah online!
sumber
Bash 4.2, Dennis
Jelas bukan solusi yang dimaksudkan, karena ia bekerja pada bash yang lebih baru juga.
Cobalah online.
sumber
Oktaf , Stewie Griffin
Memasukkan:
exit
Penalaran:
input
mengevaluasi apa pun yang dimasukkan.exit
keluar dari program.Cobalah online!
sumber
Python 2, Foon
Apa yang tertulis di kaleng, pada dasarnya.
Cobalah online.
sumber
Python 3 (CPython), Veedrac
Cobalah online!
sumber
Python 3, Siphor
Ini sangat menyenangkan. Kita perlu membuat
type(x) != str
lulus pemeriksaan, jadi kita perlu mengontrol nilai pengembaliantype()
. Kita harus mengganti__class__
atribut dan menggantinya dengan objek kustom, yang meluastype
, yang memiliki__ne__
metode diganti dengan yang selalu mengembalikan false. Ini membuatnya lulus pemeriksaan tipe, tetapi pencarian akan gagal karenao
bukan str.sumber
C #, TheLethalCoder
Atau kelas nullable lainnya.
sumber
Retina
Baris baru diikuti oleh
1
karya. Saya segera menemukannya.Cobalah online
sumber
JS (ES6)
Setiap karakter dengan kode kurang dari 10 harus berfungsi; Saya telah menggunakan
tab
karakter di atas, yang dikonversi SE ke spasi.sumber
f(<tab>)
sintaksis yang valid (input kosong) dan kita harus membedakan antaraf(1)
danf("1")
lagi pulaJavaScript (ES6), programmer5000
Cobalah online!
Kondisinya sudah
!x||x>="\n"
. Setiap char tunggal dalam tabel ASCII dengan kode kurang dari\n
akan berfungsi.sumber
Pertanyaan, Langkah Hen
Apa pun diikuti oleh spasi dan bilangan bulat positif. Ruang memisahkan input, dan input ekstra menjadi jumlah istilah untuk output.
Cobalah online!
sumber
a 1
! You ninja'd me: /MATL , Luis Mendo (bukan solusi yang dimaksudkan)
Input kosong menghentikan program dan menemukan kesalahan berikut:
Cobalah online!
sumber