Я пытаюсь выяснить, как http://domize.com кодирует свой сайт для скорости (я использую C #).
Например, если я ищу
[СНН] [vwl] [СНН] [СНН] [vwl] [СНН]
Будет выполнен поиск 6-буквенного доменного имени в следующем порядке
согласный, гласный, согласный, согласный, гласный, согласный
В результате:
babbab
babbac
babbad
babbaf
...
zuzzux
zuzzuy
zuzzuz
Поскольку имеется 21 согласный и 5 гласных (не включая «у»), это будет означать, что существует 21 * 5 * 21 * 21 * 5 * 21 = 4 862 025 возможных комбинаций.
Там результаты относительно быстрые, поэтому они не могут пройти через все эти результаты за такой короткий промежуток времени.
Теперь я понимаю, что они показывают только первые 100 одновременно, но для того, чтобы получить эти первые 100, они должны построить хотя бы НЕКОТОРЫЕ из результатов.
Мой вопрос: как они делают это так быстро?
Я думал создать массив массивов. В этом случае было бы 6 массивов (из-за 6 групп), с возможностями согласных / гласных в каждом массиве. Но я не знал, как правильно проходить через них для построения доменов.
Я уверен, что есть более быстрый / лучший способ, например, может быть хеш-таблицы или матрицы, или что-то в этом роде, но я не знаю достаточно о них, чтобы понять это самостоятельно.
Если бы кто-нибудь мог предоставить код C #, я был бы очень признателен!
Спасибо!