introduction
Je peux taper à un rythme modéré, en utilisant la disposition du clavier QWERTY. Mais si un mot comme yellowwooddoor a une tonne de lettres répétées, il faut un peu plus de temps pour le taper. Pire encore, lorsqu'un mot comme «sauter» a le même doigt utilisé pour plusieurs lettres consécutives différentes.
Voici combien de temps il me faut pour taper des lettres sur chaque doigt (mesure très peu scientifique):
Les colonnes sont le nom du doigt, les frappes / seconde, les secondes / la frappe et les touches utilisées par chaque doigt.
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
Mêmes données au format CSV .
Ça prend
.75 * (first_finger_same_letter_time + second_finger_same_letter_time) / 2
le temps de basculer entre deux doigts.
Défi
Étant donné une chaîne en entrée, combien de temps faut-il pour la taper?
- La "minuterie" démarre au moment où la première touche est enfoncée et se termine lorsque la dernière touche est enfoncée. Vous comptez juste le temps entre les touches.
- C'est du code-golf . La réponse la plus courte en octets l'emporte.
- La soumission peut être soit un programme complet soit une fonction.
- Entrez et sortez comme vous le souhaitez , stdin / out, paramètres de fonction, fichier, peu importe.
- La sortie doit être précise à au moins 3 décimales (+/- 0,001 pour une erreur d'arrondi est très bien). Début 0. pour les nombres inférieurs à 1 et retour à la ligne en option.
- L'entrée sera une chaîne qui contient (en minuscules) az, 0-9, espace, point-virgule, virgule, point et apostrophe.
- Je tape toujours des espaces avec mon pouce droit.
- J'utilise les doigts de frappe normaux (vous pouvez également consulter le tableau ci-dessus pour les correspondances avec les touches).
- Code de référence utilisé pour générer des cas de test
Cas de test
(chaîne vide ou toute chaîne à un caractère) - 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
si l'entrée est vide ou un seul caractère?Réponses:
JavaScript (Node.js) , 180 octets
Essayez-le en ligne!
Comment?
Retards de stockage
'4.2.5-75E6?3>4=4AA'
chr(52)
'4'
Conversion d'un caractère dans un bac à clés
Boucle principale
Le temps total est mis à jour avec:t
où est le bac précédent et est le caractère précédent.p s
la source
Gelée , 78 octets
Essayez-le en ligne!
Comment?
la source
05AB1E ,
9286 octetsEssayez-le en ligne ou vérifiez tous les cas de test .
Explication:
Voir cette astuce 05AB1E (sections Comment compresser les grands entiers? Et Comment compresser les listes d'entiers? ) Pour comprendre pourquoi
•δ'ā∍ë*8U¾Ã•
est307264255556527588774514
et•δ'ā∍ë*8U¾Ã•₂в
est[7,1,5,1,8,0,10,8,24,9,18,6,17,7,16,7,20]
.la source