pengantar
Saya bisa mengetik dengan kecepatan sedang, menggunakan tata letak keyboard QWERTY. Tetapi jika sebuah kata seperti yellowwooddoor memiliki satu ton surat yang diulang, dibutuhkan waktu lebih lama untuk mengetiknya. Lebih buruk lagi adalah ketika kata seperti "lompat" memiliki jari yang sama digunakan untuk beberapa huruf berturut-turut yang berbeda.
Inilah waktu yang saya perlukan untuk mengetik huruf pada setiap jari (diukur sangat tidak ilmiah):
Kolom adalah Nama jari, penekanan tombol / detik, detik / penekanan tombol, dan tombol yang digunakan oleh setiap jari
Typing same letter twice:
L Pinky 5.2 0.1923076923 1qaz
L Ring 5 0.2 2wsx
L Mid 5.3 0.1886792453 3edc
L Index 5.5 0.1818181818 4rfv5tgb
R Thumb 6.5 0.1538461538 [space]
R Index 6.9 0.1449275362 6yhn7ujm
R Mid 6.3 0.1587301587 8ik,
R Ring 6.2 0.1612903226 9ol.
R Pinky 6.1 0.1639344262 0p;'
Typing different letter on same finger:
L Pinky 4.6 0.2173913043
L Ring 4.6 0.2173913043
L Mid 4.5 0.2222222222
L Index 5.3 0.1886792453
R Index 5.4 0.1851851852
R Mid 5.1 0.1960784314
R Ring 5.2 0.1923076923
R Pinky 5.2 0.1923076923
Data yang sama dalam format CSV .
Dibutuhkan
.75 * (first_finger_same_letter_time + second_finger_same_letter_time) / 2
waktu untuk beralih di antara dua jari.
Tantangan
Diberikan string sebagai input, berapa lama untuk mengetiknya?
- "Timer" memulai saat tombol pertama ditekan dan berakhir ketika tombol terakhir ditekan. Anda hanya menghitung waktu antara penekanan tombol.
- Ini adalah kode-golf . Jawaban terpendek dalam byte menang.
- Pengajuan dapat berupa program atau fungsi yang lengkap.
- Input dan output dengan cara apa pun yang Anda inginkan , stdin / out, params fungsi, file, tidak masalah.
- Output harus akurat ke setidaknya 3 tempat desimal (+/- 0,001 untuk kesalahan pembulatan baik-baik saja). Leading 0. untuk angka di bawah 1 dan mengikuti baris baru opsional.
- Input akan berupa string yang berisi (huruf kecil) az, 0-9, spasi, titik koma, koma, titik, dan apostrof.
- Saya selalu mengetik spasi dengan ibu jari kanan saya.
- Saya menggunakan jari pengetikan sentuh normal (Anda juga dapat melihat tabel di atas untuk pemetaan tombol-jari).
- Kode referensi yang digunakan untuk menghasilkan kasus uji
Uji kasus
(string kosong atau string satu karakter) - 0.000
aa
- 0,192
fff
- 0,364
fj
- 0,123
the quick brown fox jumped over the lazy dog
- 5,795
yellowwooddoor
- 1.983
orangewooddoor
- 1,841
jump on it, jump on it
- 2.748
type on it, type on it
- 2.549
abcdefghijklmnopqrstuvwxyz01234567890 ;,.'
- 5.746
ok, this may not be the most accurate but it's in the ballpark, maybe within 30 percent or so.
- 12.138
0
jika input kosong atau satu karakter?Jawaban:
JavaScript (Node.js) , 180 byte
Cobalah online!
Bagaimana?
Menyimpan penundaan
'4.2.5-75E6?3>4=4AA'
chr(52)
'4'
Mengubah karakter ke nampan kunci
Loop utama
Total waktu diperbarui dengan:t
di mana adalah bin sebelumnya dan adalah karakter sebelumnya.p s
sumber
Jelly , 78 byte
Cobalah online!
Bagaimana?
sumber
05AB1E ,
9286 byteCobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
Lihat tip tambang 05AB1E ini (bagian Bagaimana cara mengompresi bilangan bulat besar? Dan Cara mengompresi daftar bilangan bulat? ) Untuk memahami mengapa
•δ'ā∍ë*8U¾Ã•
ini307264255556527588774514
dan•δ'ā∍ë*8U¾Ã•₂в
sekarang[7,1,5,1,8,0,10,8,24,9,18,6,17,7,16,7,20]
.sumber