Untuk tantangan polisi utama, klik di sini
PEMBERITAHUAN - Tantangan ini sekarang sudah ditutup. Setiap retakan yang diposting sekarang tidak akan dihitung di papan peringkat dan jawaban yang diterima tidak akan berubah.
Tantangan
Dengan program asli, outputnya dan output dari program yang diubah, Anda harus mencari tahu karakter mana yang perlu diubah, dihapus atau ditambahkan untuk mendapatkan output yang diharapkan.
Ketika Anda memecahkan kode seseorang, tinggalkan komentar dengan tautan ke celah Anda pada jawaban mereka.
Memformat
# [<language>, <username of program owner>](<link to answer>)
## Description
<description of change and how you found it>
## Code
<changed code>
Kemenangan
Orang yang telah memecahkan sebagian besar solusi, menang.
Papan peringkat
13 celah:
- Dennis
8 celah:
- Alex Van Liew
5 celah:
- Sp3000
- isaacg
3 celah:
- Luis Mendo
- jimmy23013
- Dom Hastings
2 celah:
- mbomb007
- Sluck49
1 celah:
- TheNumberOne
- Jakube
- ProudHaskeller
- David Zhang
- samgak
- paul.oderso
- rayryeng
- mgibsonbr
- n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
- Stewie Griffin
- abligh
cops-and-robbers
Peluruhan Beta
sumber
sumber
Jawaban:
CJam, oleh Mauris
Deskripsi
Kode asli Mauris melakukan hal berikut:
Tidak ada operator matematika CJam lain yang akan menghasilkan angka yang besar untuk input kecil, sehingga
:#
tidak dapat dimodifikasi. Karena#
, ketika digunakan untuk eksponensial, hanya mengambil bilangan bulat sebagai input,:i
tidak dapat dihapus juga. Ini hanya menyisakan satu tempat untuk memodifikasi input: string"f~"
.Tidak peduli berapa banyak karakter yang dipegang oleh string, hasilnya akan menjadi menara kekuatan asosiatif-kiri. CJam mendukung karakter dalam rentang dari 0 hingga 65535 (dengan pengecualian pengganti), jadi kita harus mengekspresikan output sebagai b n × k × j , di mana b , n , k dan j adalah bilangan bulat dalam rentang itu.
Logaritma desimal bilangan bulat yang dihasilkan dari kode yang dimodifikasi sedikit lebih kecil dari log 10 (2.44 × 10 242545 ) = log 10 (2.44) + 242545 , jadi kita dapat membagi nilai ini dengan logaritma semua basis yang mungkin untuk menemukan nilai yang tepat untuk n × k × j .
Faktanya:
Membandingkan 8 digit pertama ternyata cukup.
Ini berarti bahwa kita dapat mengekspresikan output sebagai 5 347.004 = 15.625 57.834 = 125 9 × 102 × 126 , sehingga cukup untuk mengganti
"f~"
dengan"㴉"
atau"} f~"
.Kode
atau
Perhatikan bahwa spasi dalam kode ASCII seharusnya menjadi tabulator.
Mencoba untuk mengeksekusi kode ini dalam juru bahasa online mungkin merupakan ide yang buruk, tetapi inilah cara Anda dapat memverifikasi hasil dari baris perintah:
sumber
~f
di suatu tempat dalam program.Ruby, histokrat
Deskripsi
Mengubah x menjadi array alih-alih skalar dengan menambahkan
*
Mengubah yang terakhir
9
menjadi string alih-alih angka dengan menambahkan?
Hasilnya terbuat dari sebuah array dengan elemen tunggal (
[9]
) dikalikan 9 kali kemudian meledak dengan"9"
sebagai pemisah.Kode
sumber
Python 2, ikan lumpur
Deskripsi
Melalui uji coba dan kesengsaraan yang melibatkan pemberian faktor dalam jumlah besar dan mencari faktor konsequtif, saya menyadari bahwa mengubah 87654 menjadi 58116 sudah cukup. Kemudian, saya memfaktorkan 58116 sebagai 87 * 668. Kemudian saya menyadari bahwa 01234 = 668, jadi saya hanya perlu mengubah 87654 menjadi 87 dan menghapus 01234 sepenuhnya. Ini dilakukan dengan komentar.
Kode
sumber
print sum(range(054321)*9876)*87#654)/01234
)Shakespeare, AboveFire
Dalam Adegan III, seseorang harus mengubah Claudius menjadi Claudio dalam cuplikan berikut:
Kode yang dimodifikasi:
Menggunakan kompiler yang ditautkan oleh @AboveFire, ini mencetak
11
.sumber
Prolog, Fatalkan
Deskripsi
Tambahkan dua
\
s.\
adalah negasi bitwise dan\/
bitwise atau.Kode
sumber
MATLAB / OCTAVE, Stewie Griffin
Sedikit aritmatika sederhana.
sumber
C, LambdaBeta
Deskripsi
Berubah
main(a,_)
menjadimain(_)
. Argumen pertama main adalahargc
yang diinisialisasi sebagai1
.Kode
sumber
Python 2, rp.belrann
Ubah pemahaman daftar terluar menjadi pemahaman himpunan. Kredit sebagian ke @ mbomb007, yang menghilangkan semua solusi "membosankan" (swapping
x
dany
berkeliling, mengutak-atik operator, mengubah kisaran).Penjelasan:
Dalam aslinya,
[(x,y)[x%2]for x in[y for y in range(8)]]
buat daftar berikut:Ini karena dalam Python 2.7,
y
pemahaman daftar dalam bocor ke dalam lingkup terlampir pada nilai terakhir yang diketahui (yang, pada akhir rentang, adalah 7). Jadi, dalam tuple,y
selalu 7.x
, namun, melewati daftar seperti biasa, mulai dari 0 hingga 7. Kapanx
genap, ia memilih nilaix
, ketika ganjil, ia memilihy
(yang selalu 7). Saya perhatikan bahwa jika saya memasukkan tepat satu 7 dan semua nilai lainnyax
, saya mendapat 19; kemudian saya menyadari bahwa saya bisa mengubah pemahaman luar menjadi pemahaman himpunan, yang akan menghilangkan semua nilai duplikat dan meninggalkan saya dengan tepat 19.Ini cukup pintar, saya tidak berpikir saya pernah menggunakan pemahaman set sebelumnya. Pujian.
sumber
print len('~'*sum([(x,y)[x%2]for x in[y for y in range(6)]]))
kembali21
. Cukup tetapkan kode ke variabel kemudian cetak jika itu sama dengan string yang Anda inginkan. Jika Anda melihatTrue
, Anda memecahkannya._
mengkhianatiku, kurasa.Jonas, Matlab / Oktaf
Deskripsi
Saya perhatikan jawabannya adalah
i^pi
, maka saya merasa harus berubahsin
menjadi tidak.Kode
s
->0
,n
->+
sumber
Bash, Dennis
Kode asli:
Output asli:
Kode yang dimodifikasi:
Output yang dimodifikasi:
Penjelasan:
Di Bash Anda dapat menampilkan daftar item yang dipisahkan koma di dalam sepasang kawat gigi, seperti ini:
cetakan
Jadi kode yang dimodifikasi mencetak daftar tidak ada, angka 1..9, tidak ada.
sumber
MATLAB, Luis Mendo
Kode asli:
Jawaban baru:
Deskripsi:
Diubah
-sin
menjadipsi
, fungsi poligamma di MATLAB. The-
tanda diganti denganp
dann
dihapus.sumber
C, LambdaBeta
Deskripsi
Ubah
-1
menjadi*0
sehingga hasil perkalian adalah0
(nilai palsu).Kode
sumber
Brainfuck, Kurousagi
Deskripsi
Hapus yang pertama
>
dan ubah yang pertama<
menjadi.
Diuji di brainfuck.tk . Perhatikan bahwa outputnya tidak sama persis dengan posting Kurousagi , karena SE memakan karakter yang tidak patut dicetak.
Kode
sumber
Fantom, Kain
Keamanan melalui ketidakjelasan adalah bentuk keamanan yang sangat buruk (terutama ketika kedua metode berada tepat di sebelah satu sama lain dalam dokumen Fantom dan siapa pun yang tahu seperti apa pelampung akan segera tahu apa yang harus dilakukan).
sumber
CJam, oleh Basset Hound
Menghitung e 25 . Cobalah online.
Juru bahasa online memberikan hasil yang sedikit berbeda di browser saya, yang tampaknya menjadi masalah pembulatan.
Java interpreter mencetak
7.200489933738588E10
, yang merupakan output yang diinginkan, tetapi dalam format yang berbeda.sumber
Python 2, Sp3000
Deskripsi
Diubah
01234
ke0x1234
danmin
ke9in
.Fakta yang
4669 = (01234-1)*sum(m<<m in R for m in R)
menyesatkan.Kode
sumber
m<<m in(m,n)
, tetapi hal utama adalah untuk mengubahmin
kein
.MATLAB / Oktaf, Stewie Griffin
Deskripsi
Ini membutuhkan peniadaan input ke fungsi anonim
g
, serta mengubah faktor penskalaang
fungsi menjadi 2 alih-alih 7:Kode
sumber
Perl, abligh
Deskripsi
Tambahkan operator pengulangan string,
x
dan masukkan angka tambahan!Kode
sumber
Java, TheNumberOne
Deskripsi
Program ini merupakan implementasi satu kali
Random.next()
dengan seed awalInteger.MAX_INT
dan semua angka hex dikonversi menjadi desimal. Mengubah benih ke komplemenMAX_INT
menghasilkan output:(karena pasti ada dua perubahan, pilih segala jenis perubahan no-op: menambahkan spasi di suatu tempat, titik koma ekstra, dll)
sumber
Integer.MAX_VALUE
menjadiInteger.MAX_VALUE+1
atauInteger.MIN_VALUE
+1
tetapi karena saya melakukannya dengan Python, itu hanya berguling lama, ahaha. Sebenarnya itu adalah pikiran pertamaku.Brainfuck, AboveFire
program ini merupakan modifikasi dari kode ini saya jawaban cookie. jawaban itu bekerja dengan terlebih dahulu menghitung tabel kode ascii yang berguna dari karakter yang berguna, dan kemudian memiliki tiga pernyataan kondisional yang dibuat oleh tiga loop yang dimasukkan ke dengan memiliki
1
posisi yang benar.awal dari bagaimana saya memecahkan kode adalah bahwa pola berulang dalam output yang diubah sebagian besar adalah apa yang dicetak jika Anda memasukkan loop ketiga dengan tabel bergeser ke kiri.
(karakter tambahan ditandai dengan tanda kurung)
sumber
Python 2, ikan lumpur
Deskripsi
Ubah
<<
ke<>
(versi usang!=
) dan0x156
ke0156
, titik kode untuk"n"
(yang muncul 3 kali dalam string panjang 23)'<built-in function sum>'
).Kode
sumber
JavaScript, oleh Razvan
Deskripsi
Output yang dimodifikasi jelas nomor alami Euler, yang dapat diakses sebagai
Math['E']
.Dengan mengubah
''
ke'3'
dan32
ke36
,String.fromCharCode
menghasilkanE
.Kode
sumber
Fantom, Kain
Deskripsi
Pengindeksan array sudah diatur, jadi saya hanya perlu membuat 55. Jujur, bagian tersulit adalah mengunduh bahasa.
Kode
(Dimasukkan koma,
0
->3
)sumber
Shakespeare, AboveFire
BUKAN BENAR - maaf :(
Akan melihat lebih jauh ke dalamnya ketika saya pulang dari kerja. Dalam nilai Claudio asli adalah 1132462081 dan nilai Claudius adalah 1
Dalam adegan terakhir, nilai Claudio dicetak dua kali,
buka hatimu x2 = nilai cetak orang lain di atas panggung (Claudio). Jadi jika Anda mengubah Claudius ke Claudio (2 karakter) - nilai Claudius akan dicetak - yaitu 1 - dua kali
sumber
VBA oleh JimmyJazzx
Diubah
IRR
menjadiMIRR
dan diubah5
menjadi a,
jadi ada 3 parameter.Saya menemukan ini sambil mencari cara kerja
IRR
fungsi Excel . Ada sebuah artikel: Bagaimana Fungsi MIRR Excel Dapat Memperbaiki Fungsi IRR . Itu memberi saya informasi. Namun, upaya pintar. Saya belum pernah menggunakan VBA sebelumnya, jadi itu menarik juga.sumber
Matlab / Oktaf, Jonas
Deskripsi
Di baris terakhir, tambahkan
'
untuk mentransformasikanarg'
ke dalam string'arg'
, yang kemudian akan ditafsirkan sebagai angka ASCII. Dan kemudian tambahkan yang lain'
di akhir untuk mempertahankan format kolom.Hampir tidak perlu
'
dalam kode asli adalah petunjuk utama. Juga, dalam restrospeksi, fakta yangarg
didefinisikan secara terpisah (bukan langsung dalamsin
garis) seharusnya terlihat mencurigakan.Kode
sumber
bc, abligh
Hanya memasukkan operator matematika. Butuh sekitar 1 menit untuk menyelesaikan setelah saya mencari apa itu bc dan operasi matematika apa yang dimilikinya. Hal pertama yang saya pikirkan adalah pembagian, tetapi tidak ada faktor umum yang terlihat bagus. Jadi saya segera pergi untuk eksponensial dan modulus. Setidaknya 15 digit diperlukan untuk modulus b / c dari output yang diharapkan. Setelah itu, saya menebak dua kali dan menemukannya.
sumber
Lua, TreFox
Deskripsi
"_G" adalah tabel global, membuat "_G.load" merujuk ke fungsi global "memuat". Mengonversi fungsi ke string menghasilkan pengembalian alamat fungsi, yang kemudian dibuat menjadi panjang string oleh operator panjang "#".
Kode
Juga, karena ini adalah posting pertama saya di sini, saya tidak dapat membuat komentar pada jawaban aslinya.
sumber
0x321a40c6d0
, untuk hasil akhir dari22
.load
, dan saya tahu_G
merujuk ke tabel simbol global ... Saya hanya tidak menggabungkan keduanya.Python, rp.beltran
Deskripsi
Saya perhatikan bahwa huruf yang dibutuhkan selalu 2 di depan angka. mengubah yang ketiga
\w
untuk\d
mendapatkan semua huruf yang tepat kecuali spasi.\D
adalah satu-satunya\
kelompok yang dapat saya temukan yang memungkinkan huruf dan spasi.Kode
w
->D
,w
->d
di regex.sumber
Pyth, isaacg
Deskripsi
Kode asli melakukan hal berikut:
Sejak 156490583352162063278528710879425690470022892627113539022649722 - 58.227.066 memberikan 156490583352162063278528710879425690470022892627113538964422656 , yang sama dengan 2 26 × 3 × 7 × 7477 × 381.524.422.711 × 17007550201751761 × 2288745700077000184147 , output yang diinginkan dapat diperoleh dengan mengganti
^3y21
dengan sesuatu yang mengevaluasi ke pembagi dari produk ini dan lebih besar dari 58.227.066 .Dalam
^
kode asli menunjukkan bahwa kita dapat menggunakannya untuk menghitung kekuatan 2 , 3 bahwa kita dapat menghitung pembagi yang pas dari bentuk 3 × 2 n .Keduanya menyesatkan. Solusi dengan jarak Levenshtein dari 3 (
%CG^2 26
,%CG^y2 13
,%CG^4y13
) atau 4 (%CG.<3y13
) yang mudah ditemukan, tetapi solusi pada jarak 2 membutuhkan pendekatan yang berbeda.Alfabet huruf kecil (
G
) memiliki 26 huruf, jadi set dayanya (himpunan dari semua urutan huruf kecil yang meningkat secara ketat) memiliki 2 26 elemen. Dengan menggantiy2
denganyG
, kami menghitung set daya ini.Kita dapat mengambil panjang set dengan menggantinya
3
denganl
, yang membuat kita^lyG1
, yaitu, 2 26 dinaikkan ke kekuatan pertama.Kode
Perhatikan bahwa ini hanya akan bekerja pada komputer dengan memori yang cukup tersedia (kira-kira 6,43 GiB, menurut
time
), sehingga tidak akan berfungsi dengan penerjemah online.Inilah cara Anda dapat memverifikasi hasil dari baris perintah:
sumber