Tulis program atau fungsi yang diberi string (atau padanan bahasa Anda), tentukan apakah string itu kata, atau tidak, dan hasilkan nilai yang benar atau salah.
(Ini bukan duplikat dari Apakah ini bahkan sebuah kata? Kata-kata yang salah dihasilkan dengan cara yang sangat berbeda yang saya percaya membuat ini tantangan yang sama sekali berbeda)
Kata-kata semua akan menjadi huruf kecil, antara 5 dan 10 karakter, dan tidak memiliki tanda kutip.
Kata-kata yang benar adalah bagian yang dipilih secara acak dari daftar kata-kata bahasa Inggris SCOWL (ukuran 50).
Kata-kata yang salah dihasilkan melalui dua metode: swapping dan subtitusi.
Kata-kata "swapping" dihasilkan menggunakan shuffle Fisher-Yates yang dimodifikasi pada huruf kata-kata (nyata) yang dipilih secara acak. Alih-alih bertukar surat setiap kali, surat mungkin atau mungkin tidak ditukar (probabilitas bervariasi, sehingga beberapa kata akan lebih realistis daripada yang lain). Jika kata baru cocok dengan kata yang sudah ada, hasilnya dibuang dan menghasilkan kata lain.
Kata-kata "substitusi" dihasilkan dengan menggunakan metode yang serupa, tetapi alih-alih bertukar surat dengan huruf lain, setiap huruf memiliki peluang untuk diganti dengan huruf acak lain.
Setiap metode digunakan untuk menghasilkan 50% dari kata-kata palsu.
Mencetak gol
Fungsi Anda harus kurang dari 150 byte . Skor ditentukan sebagai berikut:
percentage of answers correct + ((150 - length of program) / 10)
Aturan
Karena ini berkaitan dengan sejumlah besar kasus uji (setiap daftar kata adalah 1000 kata), program pengujian otomatis baik-baik saja. Penguji otomatis tidak diperhitungkan dalam jangka waktu program; Namun, itu harus diposting sehingga orang lain dapat mengujinya.
- Tidak ada celah.
- Tidak ada built-in terkait ejaan / kamus.
Sumber daya
Daftar kata-kata: http://pastebin.com/Leb6rUvt
Daftar bukan kata-kata (diperbarui) : http://pastebin.com/rEyWdV7S
Sumber daya lain (daftar kata SCOWL dan kode yang digunakan untuk menghasilkan kata-kata acak): https://www.dropbox.com/sh/46k13ekm0zvm19z/AAAFL25Z8ogLvXWTDmRwVdiGa?dl=0
sumber
quais
,paves
,colic
,supermax
. (Catatan: Saya senang mengetahui bahwa itusupermax
adalah kata yang sebenarnya)Jawaban:
PHP, 64.9 (50%, 1 byte)
Yah, saya tidak begitu yakin apakah ini jawaban yang bisa diterima, tetapi begini:
Jalankan seperti ini:
Jelas, untuk daftar kata yang benar dan salah yang sama besar, ini menghasilkan 50% false positive dan 0% false negative, jadi 50% benar. Karena program ini 1 byte, Anda mendapatkan bonus panjang maksimum yang mungkin (terlepas dari jawaban tanpa panjang).
sumber
CJam, 78,6 (78,5%, 149 byte)
Cocok dengan 696 kata nyata dan tidak cocok dengan 874 tanpa kata, memberi
1570/2000 = 0.785
. Diuji pada juru bahasa online di Chrome - Saya tidak yakin apakah permalink akan berfungsi di Firefox. Jika tidak, string, yang berisi unsintables, dapat diperoleh olehProgram ini hanya menginput input dan melakukan pencarian berdasarkan kemungkinan 1077. Saya mencoba bermain golf regex ini, tetapi kata-katanya terlalu dekat dengan kata-kata nyata sehingga tidak berguna.
Cobalah online! | Test suite (rekatkan daftar kata lengkap untuk menghitung jumlah kecocokan)
sumber
Mathematica, 69,35 (69,35%, 150 byte)
Penjelasan
Fungsi akan memeriksa apakah kata tersebut berisi pasangan huruf tertentu yang jarang terjadi dalam kata-kata nyata. Jika demikian, fungsinya akan kembali
True
, menunjukkan bahwa kata itu mungkin bukan kata yang nyata. Misalnya, pasangan"ii"
muncul 21 kali dalam daftar bukan kata, sementara tidak terjadi dalam daftar kata.Tingkat yang benar
sumber
CSharp, 69,85 (57,45%, 26 byte)
Saya memeriksa apakah huruf kedua dari kata tersebut ada dalam daftar huruf kedua paling populer dalam bahasa Inggris ( dari situs ini ).
Tes otomatis:
Hasil:
Perhitungan:
sumber
ES6, 76 (67,4%, 64 byte)
Jawaban yang lebih serius kali ini. Ini adalah algoritma yang cukup sederhana. Ini mengembalikan nilai kebenaran ketika karakter kedua kata adalah salah satunya
aeinoru
. Ini tidak menghasilkan rasio keberhasilan yang jauh lebih baik daripada hanya1
, tetapi masih sangat singkat.Tes di sini.
&!
dengan>
qxy
, menambahkan lebih banyak karakter kedua (umum) yang lebih valid untuk mengkompensasi negatif palsu, menghilangkan koma redundan di regexfiopq
sumber