Введение
Я могу печатать в умеренном темпе, используя раскладку клавиатуры QWERTY. Но если такое слово, как yellowwooddoor, содержит массу повторяющихся букв, его ввод займет немного больше времени. Еще хуже, когда слово «прыжок» имеет один и тот же палец, который используется для нескольких разных последовательных букв.
Вот как долго я набираю буквы на каждом пальце (очень ненаучно):
Столбцы - это имя пальца, нажатия клавиш / секунды, секунды / нажатия клавиш и клавиши, используемые каждым пальцем.
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
Те же данные в формате CSV .
Занимает
.75 * (first_finger_same_letter_time + second_finger_same_letter_time) / 2
время переключаться между двумя пальцами.
Вызов
Учитывая строку в качестве ввода, сколько времени потребуется, чтобы набрать ее?
- «Таймер» запускается в момент нажатия первой клавиши и заканчивается при нажатии последней клавиши. Вы просто подсчитываете время между нажатиями клавиш.
- Это код-гольф . Кратчайший ответ в байтах побеждает.
- Представление может быть либо полной программой, либо функцией.
- Ввод и вывод любым способом, каким вы хотите : стандартный ввод / вывод, параметры функции, файл, не имеет значения.
- Выходные данные должны быть с точностью не менее 3 десятичных знаков (+/- 0,001 для ошибки округления в порядке). Лидирующий 0. для номеров до 1 и завершающий перевод новой строки необязательный.
- Входными данными будет строка, содержащая (строчные буквы) az, 0-9, пробел, точка с запятой, запятая, точка и апостроф.
- Я всегда печатаю пробелы правым большим пальцем.
- Я использую обычные сенсорные отпечатки пальцев (вы также можете посмотреть на приведенную выше таблицу для сопоставления клавиш).
- Ссылочный код, используемый для генерации тестовых случаев
Контрольные примеры
(пустая строка или любая односимвольная строка) - 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
если ввод пуст или один символ?Ответы:
JavaScript (Node.js) , 180 байт
Попробуйте онлайн!
Как?
Хранение задержек
'4.2.5-75E6?3>4=4AA'
chr(52)
'4'
Преобразование символа в корзину
Основной цикл
источник
Желе , 78 байт
Попробуйте онлайн!
Как?
источник
05AB1E ,
9286 байтПопробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
Посмотрите этот мой совет 05AB1E (разделы Как сжимать большие целые числа? И Как сжимать целочисленные списки? ), Чтобы понять, почему
•δ'ā∍ë*8U¾Ã•
есть307264255556527588774514
и•δ'ā∍ë*8U¾Ã•₂в
есть[7,1,5,1,8,0,10,8,24,9,18,6,17,7,16,7,20]
.источник