|
|
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
есть у нас набор букв, есть табличка, содержащая словарик. Как нам сделать так, чтобы по этому набору выбирались все слова, получаемые из них? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 17:08:37 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
Простым перебором порядка следования символов - получаем набор (можно назвать словом) - по нему прямой запрос к таблице (т.е. можно по лайку можно на полное совпадение), найдено вхождение - записываем в коллекцию или в другую таблицу. Цикл перебора позиций букв писать не буду:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 17:11:58 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
есть такая чудная функция InStr пишешь условие: InStr(перваяИзБукв,Слово) and InStr(втораяИзБукв,Слово) and ... and InStr(последняяИзБукв,Слово) and Len(Слово)=КоличествоБукв все слова удовлетворяющие этому условию - твои ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 17:13:22 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
правда с длинной можно подумать по другому, чтобы включались слова с повторами букв. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 17:15:19 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
2 sasha_1 Вот у меня набор букв: мамаздапа. Слова (некоторые) - мама, мазда, дам и т.п. Так что тут нужно сначала получить все возможные наборы, включая и наборы из одной буквы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 17:17:28 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
я понял немножко по другому вопрос. но функция все равно полезная :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 17:19:21 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
случаем не Т9 для мобил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 20:03:36 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
Это, кажется, для игры "Эрудит" или "Scramble" Предлагаю так... Разложить набор букв в таблицу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Словарик на две таблицы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Подзапросом найти все буквы в словарике встречающиеся нужное колличество раз. Код: plaintext 1. 2. 3. 4. 5. А теперь найти нужные слова Код: plaintext 1. 2. 3. В прикрепленном файле база с этими таблицами и запросами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 23:30:08 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
спасибо последнее решение интересное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 10:58:46 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
Не проще ли генерить len(string)! (в смысле факториал) штук выражений типа like "*м*а*м*а*з*д*а*л*а*"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 12:03:45 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
не проще слов в словарике 18 тыщ а комбинаций могут быть миллионы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 13:59:02 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
На этот счет гдето я видел готовое решение.Однако тест показал серьезные иормоза после 1000 записей. если интересно еому могу поискать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 15:21:36 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
artem_kaслов в словарике 18 тыщ а комбинаций могут быть миллионы... Это уже интереснее... :) Если не влом, можно ли выложить тестовые данные куда-нибудь? Например на am.rusimport.ru . Не все конечно, хотя бы кил 100. Мы бы дальше порешали бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 18:40:33 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
Предлагаю решение, хотя оно и не привязано к Аксессу. 1. В обоих словах (в том, которое надо проверить, и в разрешенном наборе букв) сортируем буквы по алфавиту при помощи любого алгоритма сортировки массива: мазда -> аадзм мамаздапа -> аааадзммп 2. В слове, которое надо проверить, вставляем звездочки между группами разных букв и пишем условие: "аааадзммп" like "*аа*д*з*м*" Если в слове есть какая-то лишняя буква (даже из разрешенных, но с превышением количества, например второе "д" или пятое "а"), то условие будет ложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 18:51:47 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
От нечего делать попробовал еще вариант. Сделал упрощенно, чтоб не возиться. Итак, считаю, что набор символов в словах ограничен (для себя взял знаки "0"-"9"). Считаю, что количество повторов в знаков в "слове" не важно, важно лишь их наличие. Сделал таблицу "Слова" слово - varchar(50) - Primary key [0] - boolean [1] - boolean [2] - boolean [3] - boolean [4] - boolean [5] - boolean [6] - boolean [7] - boolean [8] - boolean [9] - boolean В случае, если кол-во повторов важно, вместо boolean используем byte, например, и в поля кладем именно количество вхождений символов в слово, а не признак вхождения. Делал все в a97. В таблице создал второй индекс из полей [0]-[9]. Сделал запрос "разбить": Код: plaintext 1. 2. 3. 4. 5. Сделал форму с тремя кнопками: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. Результат работы: создалось ок. 95 000 записей, создавалось минут 15 (celeron 633). Остальное вот: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 19:44:34 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
Гео, ты же вроде сейчас водку пьянствуешь сотоварищи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 20:00:19 |
|
||
|
Интересный вопрос (чтобы по набору букв выбирались все слова, получаемые из них)
|
|||
|---|---|---|---|
|
#18+
Не - я завтра водку пьянствую :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 20:20:30 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32688139&tid=1671839]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
17ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 265ms |

| 0 / 0 |
