Я пытаюсь написать кусок кода, который будет делать следующее:
Возьмите цифры от 0 до 9 и присвойте одну или несколько букв этому номеру. Например:
0 = N,
1 = L,
2 = T,
3 = D,
4 = R,
5 = V or F,
6 = B or P,
7 = Z,
8 = H or CH or J,
9 = G
Когда у меня есть код, такой как 0123, его легко кодировать. Это, очевидно, будет составлять код NLTD. Когда вводится такое число, как 5,6 или 8, все становится иначе. Число, подобное 051, приведет к более чем одной возможности:
NVL и NFL
Должно быть очевидно, что это становится еще «хуже» с более длинными числами, которые включают несколько цифр, таких как 5,6 или 8.
Будучи довольно плохо разбирающимся в математике, я пока не смог придумать достойного решения, которое позволило бы мне набрать в программе кучу цифр и заставить ее выплевывать все возможные комбинации букв. Так что я хотел бы помочь с этим, потому что я не могу понять это. Откопал немного информации о перестановках и комбинациях, но не повезло.
Спасибо за любые предложения / подсказки. Язык, на котором мне нужно написать код, - это PHP, но любые общие советы будут высоко оценены.
Обновление:
Еще немного предыстории: (и большое спасибо за быстрый ответ!)
Идея, лежащая в основе моего вопроса, состоит в том, чтобы создать скрипт, который поможет людям легко преобразовывать числа, которые они хотят запомнить, в слова, которые гораздо легче запомнить. Это иногда называют «псевдо-нумерологией».
Я хочу, чтобы скрипт дал мне все возможные комбинации, которые затем сопоставляются с базой данных раздетых слов. Эти раздетые слова просто взяты из словаря, и из них удалены все буквы, которые я упомянул в своем вопросе. Таким образом, число, которое должно быть закодировано, обычно может быть легко связано с одной или несколькими записями базы данных. И когда это происходит, вы получаете список слов, которые вы можете использовать, чтобы запомнить число, которое вы хотели запомнить.