Sebuah mengocok riffle adalah cara mengocok kartu di mana dek dibagi menjadi 2 bagian kira-kira sama dan bagian yang riffled satu sama lain dalam kelompok-kelompok kecil. Ini adalah cara mengacak-acak sebuah string:
- Pisahkan string menjadi bagian yang sama.
- Balikkan string, dan mulai dari awal setiap string.
- Masukkan run dengan panjang acak seragam antara 1 dan jumlah karakter yang tersisa di string saat ini ke string terakhir
- Kemudian hapus karakter ini dari string.
- Ulangi untuk separuh lainnya, sampai kedua bagiannya kosong.
Sebuah contoh
"Hello World!" Output string = ""
"Hello ", "World!" ""
"Hell", "World!" " o"
"Hell", "World" " o!"
"Hel", "World" " o!l"
"Hel", "Wo" " o!ldlr"
"H", "Wo" " o!ldlrle"
"H", "" " o!ldlrleoW"
"", "" " o!ldlrleoWH"
Produk akhir dari Hello World!
dapat o!ldlrleoWH
dan itulah yang akan Anda hasilkan.
Polisi
Tugas Anda adalah membuat program (atau fungsi) yang akan mengacak-acak string. Jika string yang dimasukkan memiliki panjang ganjil, cukup bagi menjadi dua dawai panjang tidak rata dengan panjang relatif dari +1
dan +0
( abc => [ab, c] or [a, bc]
). Anda dapat mengambil input dalam mode normal dan menghasilkan output dalam mode normal.
Pengajuan Polisi Anda akan terdiri dari 4 hal
- Bahasa yang Anda gunakan
- Panjang program Anda dalam byte
- Program Anda, riffle shuffled.
- Ada lagi yang ingin Anda tambahkan
Anda bertujuan untuk menjaga kode Anda agar tidak diretas oleh Perampok selama 7 hari. Setelah periode itu, program Anda aman dan Anda harus mengedit di program asli Anda. Kiriman Anda mungkin masih retak sampai Anda mengungkapkan solusi Anda. Solusi terpendek dan aman akan menjadi pemenang!
sumber
Jawaban:
Jelly, 11 byte, Retak
Ini adalah versi golf sehingga seseorang mungkin dapat memecahkannya dengan mudah hanya dengan membuat versi golf. Mungkin ada beberapa pendekatan berbeda tetapi saya menduga pendekatan ini akan cukup umum dengan bahasa golf.
Hash SHA-384 dari program yang saya maksudkan adalah
86025a659b3c5fc38e943f72b1f26e28e2e751a7118a589073f1d24fa61ff6b02753d6a0f3f0c7fee6555de69fd06a74
(menggunakan pengkodean UTF-8).sumber
> <> , 46 byte
Hampir tidak ada kebingungan dalam kode asli, tapi saya kira bahasa 2D akan cukup sulit untuk dipecahkan.
Penafian: Ditulis sebelum ditetapkan bahwa itu harus acak acak. Ini bukan acak seragam, dan saya tidak yakin bagaimana saya akan menerapkan algoritma acak seragam di> <> untuk memulai.
sumber
Python 3, 154 byte (daftar karakter -> daftar karakter) (fungsi) Retak
Saya ragu ini akan terlalu sulit untuk retak, terutama karena riffling sekali agak tidak efektif (Anda dapat melihat seluruh komponen program dalam output ...). Ini sebagian besar hanya untuk membuat segalanya bergulir. Mungkin ada spasi putih (termasuk baris baru) yang tidak saya salin dengan benar. Hash SHA-384 dari solusi yang saya maksudkan adalah
5924530418bf8cd603c25da04ea308b124fdddfc61e7060d78b35e50ead69a7fbde9200b5ee16635cc0ee9df9c954fa1
.sumber
Röda , 118 byte
Dibutuhkan aliran karakter sebagai input dan output aliran karakter.
sumber
R , 283 byte, Retak
Saya menyadari sekarang bahwa menulis jawaban yang lebih panjang memiliki lebih banyak "berlari" karakter yang dilestarikan, sayangnya.
Semoga berhasil!
sumber
Pyth , 14 byte, Retak
Implementasi Pyth yang cukup standar untuk menguji air. Mungkin cukup mudah retak, tapi saya kira kita akan melihat bagaimana tarifnya.
sumber
Brainfuck acak , 273 byte
Brainfuck acak sama dengan brainfuck normal, tetapi memperkenalkan
?
karakter, yang menetapkan sel saat ini ke nilai acak. Catatan menyenangkan; Saya memiliki versi ini yang hanya berfungsi untuk input kurang dari 256 karakter, untuk alasan yang jelas, tetapi kode itu sendiri lebih panjang dari itu. Ketika saya mengubahnya untuk menangani lebih lama, ternyata satu byte lebih pendek dari aslinya. ¯ \ _ (ツ) _ / ¯.sumber
Pushy , 25 byte, Retak
Mengambil input sebagai
"quoted string"
pada baris perintah.sumber
1L
sebaliknya? Jika tidak, Anda menambahkan panjang 1APL (Dyalog Unicode) , 62 byte
SHA-384 dari solusi yang saya maksudkan:
3209dba6ce8abd880eb0595cc0a334be7e686ca0aa441309b7c5c8d3118d877de2a48cbc6af9ef0299477e3170d1b94a
Ini mungkin cukup mudah, terutama karena sebagian besar orang di obrolan APL membantu saya membangun jawaban ini.
sumber