![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
В одной из тем про "как обрабатывать телефонный номер" возникла идея сделать ассоциацию со словами, т.е. чтобы лучше запомнить телефон.
Вот я тут начал было реализовывать, но никак не могу понять логику как подбирать слова. Вот что получает у нас есть десять цифр. Единица и ноль не имеют букв (рассматриваем раскладку на сотовых телефонах) Единицу я планирую заменить на "минус", а ноль на "плюс" Значит мы можем номера делить на слова если в номере будут эти цыфры. далее есть 2 - а,б,в,г 3 - д,е,ё,ж,з 4 - и,й,к,л 5 - м,н,о,п 6 - р,с,т,у 7 - ф,х,ц,ч 8 - ш,щ,ь,ы,ъ 9 - э,ю,я а также есть таблицы с русскими словами (у меня получилось около 99 тысяч) где есть само слово и сколько в нём букв. Хотя нужно будет выкинуть слова больше 10 букв а вот теперь сижу ине могу понять как осуществить перебор словаря и выдать все возможные варианты Жду идей ;) -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
сотовые номера начинаются с 8 или 7 (у нас), то есть слова будут начинаться на ф,х,ц,ч,ш,щ,ь,ы,ъ
как много таких слов? -------------------- Amazing ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
телефонные номера у нас начинаются с кода оператора или кода региона
![]() в том словаре который у меня ф - 1512 х - 1045 ц - 509 ч - 952 ш - 1231 щ - 179 ы, ь,ъ - понятное дело нет так что можно выбрать ![]() Сейчас пытаюсь всё это дело реализовать через прогон массивов. Но видимо это не самый оптимальный вариант.. Зато будет от чего отталкиваться.. -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
1. надо бы составить правила формирования слов (три ффф подряд не могут быть и т.д.)
2. проверка по словарю Добавлено через 48 секунд как я пока вижу решение: формируем все возможные комбинации, с учетом правил (п. 1), и делаем проверку. в итоге мы можем получить несколько вариантов -------------------- Amazing ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
так, значит условия должны быть следующими
- слово не должно содержать три повторяющиеся буквы - наверное нет смысла когда 1 или 0 тоже три идут подряд - разбить телефон на слова, т.е. по 1 или 0 - не начинать слова с Ь,Ъ,Ы вот простой перебор в который нужно вставить эти условия...
сам перебор без вывод при карсимальновозможной комбинации составляет меньше секунды (думал будет значительно больше) -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
38попугаев ( [8]385 556 223 )- это хороший номер?
Зачем игнорировать цифры?
Осталось вставить туда условие и ужаснуться ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
а что ты предлагаешь? Как такое обработать?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
добавить в assn[X] еще и соответствующую цифру. Резать на слова по 0,1 и цифрам -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Я бы поместил словарь в бд, после чего делал бы выборку по таблице, и в PHP скрипте обрабатывал бы только уже ответ БД. Это сообщение отредактировал(а) krundetz - 20.1.2012, 09:33 |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
так тогда в словари это нужно занести
если одно слово, т.е. нет ни 1 ни 0 то это самый простой перебор (уже показал код).. Но ведь нужноделить по словам ещё и искать каждое слово.. Вот как тут с этими вложенными циклами быть? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Зачем? слова в словаре состоят из букв. Просто некоторые слова могут соединяться цифрами -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
это не реально автоматом делать..
Добавлено через 4 минуты и 1 секунду кстати, есть слова с тире.. тогда нужно сначала делить по "0", и если слова не найдуться, то потом ещё и по "1" -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
ну я предлагаю делать саму выборку единым запросом к таблице, то есть все сведется к составление запроса для составления самих же комбинаций подставляемых в запрос ИМХО перебор не лучшей вариант, думаю здесь возможно использование побитового сдвига Это сообщение отредактировал(а) krundetz - 20.1.2012, 11:09 |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
На генерацию исходных данных для запроса УЖЕ уходит примерно секунда. Сколько будет выполняться сам запрос отдельная и не простая песня. Вероятно, нужно применять более навороченную математику и, возможно, более быстрый инструмент. Хотя прикинуть сложность и реализуемость алгоритма можно, наверное, и на php -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |