Ini adalah tantangan polisi dan perampok yang agak mirip golf . Ini adalah utas polisi; utas perampok ada di sini.
Polisi
Tugas Anda adalah mendefinisikan sistem penulisan ulang abstrak yang sulit dijangkau satu kata dari kata lain. Anda akan mempersiapkan hal-hal berikut:
Seperangkat simbol, disebut alfabet. (Anda dapat menggunakan karakter Unicode untuk ini, tapi jangan gunakan spasi putih, atau simbol yang sulit dibedakan satu sama lain.)
Sebuah tali sumber terdiri dari simbol-simbol dari alfabet Anda.
Sebuah String Target terdiri dari simbol-simbol dari alfabet Anda.
Satu set aturan penulisan ulang menggunakan karakter dari alfabet Anda. (Lihat di bawah untuk definisi aturan penulisan ulang.)
Bukti yang menunjukkan apakah string sumber Anda dapat dikonversi menjadi string target Anda dengan penerapan berturut-turut aturan penulisan ulang Anda. Bukti ini mungkin terdiri dari urutan aktual dari langkah-langkah penulisan ulang, atau bukti matematika bahwa urutan seperti itu harus ada, atau bukti matematika bahwa urutan seperti itu tidak ada.
Anda akan memposting empat pertama dari ini, menjaga kerahasiaan bukti; perampok akan mencoba memecahkan jawaban Anda dengan memberikan bukti sendiri bahwa string target Anda dapat atau tidak dapat dijangkau dari string sumber Anda. Jika kiriman Anda tidak retak dalam waktu dua minggu , Anda dapat menandainya sebagai aman dan mengeditnya sebagai bukti.
Pengajuan akan diberi skor sesuai dengan jumlah karakter dalam aturan penulisan ulang mereka dan string sumber dan target mereka, sebagaimana dirinci di bawah ini. Pemenang akan menjadi pengajuan tanpa retak dengan skor terendah.
Apa itu aturan penulisan ulang?
Aturan penulisan ulang hanyalah sepasang string dalam alfabet Anda. (Salah satu dari string ini mungkin kosong.) Aplikasi aturan penulisan ulang terdiri dari menemukan substring yang sama dengan string pertama dalam pasangan, dan menggantinya dengan yang kedua.
Contoh harus menjelaskan ini:
Misalkan alfabet adalah A
, B
dan C
; string sumbernya adalah " A
"; string target adalah " C
" dan aturan penulisan ulangnya adalah
A:B
B:BB
B:A
AA:C
maka string target dapat dijangkau dengan cara berikut:
A
B (using rule 1)
BB (using rule 2)
AB (using rule 3)
AA (using rule 3)
C (using rule 4)
Mencetak gol
Skor Anda akan
- panjang string sumber Anda,
- ditambah panjang string target Anda,
- ditambah panjang semua string yang termasuk dalam aturan penulisan ulang Anda,
- ditambah satu poin ekstra untuk setiap aturan penulisan ulang.
Jika Anda menulis aturan penulisan ulang dengan pemisah titik dua seperti di atas, ini hanya panjang total semua aturan penulisan ulang (termasuk pemisah), ditambah panjang sumber dan string target. Skor yang lebih rendah lebih baik. Jumlah karakter berbeda dalam alfabet Anda akan digunakan untuk memutuskan ikatan, dengan lebih sedikit yang lebih baik.
Karunia
Saya ingin melihat jawaban yang benar-benar cocok untuk skor rendah. Saya akan memberikan 200 rep untuk jawaban pertama yang mendapat skor kurang dari 100 poin dalam tantangan ini dan tidak retak.
Mx -> Mxx
aturan tersebut, sehingga akan berakhir jauh lebih rumit daripada Hofstadter's asli.