Алгоритм создания чисел, которые легко запомнить и которые трудно ошибиться - PullRequest
0 голосов
/ 04 апреля 2020

Я хочу присвоить номера людям в качестве их идентификатора. Поскольку эти цифры нужно будет запоминать, вводить вручную и часто писать на бумаге, я хотел бы убедиться, что эти числа выбраны, чтобы уменьшить риск неправильного запоминания или неправильного ввода идентификатора одного человека и случайного ввода идентификатора другого человека. Идентификаторы должны быть числовыми, потому что они также должны быть закодированы в штрих-коде.

Меньший пример: для 10 человек, использующих цифры от 1 до 10, легко набрать слово 5 вместо 4. Вместо этого, если людям было назначено 16, 29, 31, 48, 57, 62, 75, 83, 94, этот риск должен быть уменьшен, так как у каждого числа нет действительных прямых соседей, любой ди git уникален в любой позиции, а неправильное использование другого действительного числа менее вероятно.

На самом деле мне нужно присвоить номера 1000 человек, используя числа из шести цифр.

Я ищу алгоритм, который может выбрать эти числа. Предпочтительно, чтобы он учитывал как запоминаемость, так и риск ошибочного написания или ввода другого действительного числа. К сожалению, я не могу сразу описать, как измерить эти два фактора. Я надеялся, что существует какое-то стандартное решение, которое я просто не могу найти из-за отсутствия ключевых слов.

Я также думал о контрольных суммах, но они не работают на бумаге. Присвоение второго номера участникам, чтобы неправильный ввод мог быть обнаружен несоответствием, неосуществимо и сталкивается с аналогичными трудностями на бумаге.

1 Ответ

1 голос
/ 04 апреля 2020

Вы находитесь в области исправления ошибок и обнаружения ошибок кодов. Выберите свой яд .

Самый простой способ - выделить git в качестве управляющего элемента git, который позволяет легко обнаруживать ошибки одного опечатка. Для 1000 человек и 6 цифр (1 000 000 номеров) у вас может быть 2 таких цифры, что позволяет легко обнаружить 2 опечатки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...