|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 64086.7720 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
29.08.2018, 18:25
|
#1
|
Senior Member
Регистрация: 12.07.2009
Сообщений: 1,581
Бабло: $361065
|
Софт для генерации буквенных перестановок
Задача сгенерировать все возможные двухбуквенники, затем 3-х, затем 4-х и так далее.
Очень важно получить все уникальные возможные варианты для каждого диапазона. Планка до 10 букв.
Чем такое можно сделать?
|
|
|
29.08.2018, 20:20
|
#2
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,859
Бабло: $1861015
|
надо пример приводить
|
|
|
29.08.2018, 20:52
|
#3
|
Senior Member
Регистрация: 21.03.2008
Сообщений: 690
Бабло: $128400
|
На пхп, токма зачем тебе больше 4х букв?
PHP код:
//$blah = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$blah = array ('0','1','2','3','4','5','6','7','8','9');
$extension = '.com';
//for ($a=0; $a<10; $a++)
//{
for ($b=0; $b<10; $b++)
{
for ($c=0; $c<10; $c++)
{
$domain = $blah[$a] . $blah[$b] . $blah[$c] . $extension ;
$fpz=fopen("lll.txt","a");
@chmod("lll.txt",0666);
fputs($fpz,"$domain\n");
fclose($fpz);
echo "$domain<br>";
}
}
//}
|
|
|
29.08.2018, 20:57
|
#4
|
zenno.pro
Регистрация: 29.05.2014
Сообщений: 961
Бабло: $138858
|
|
|
|
29.08.2018, 21:46
|
#5
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,859
Бабло: $1861015
|
Drow, без массива быстрее
PHP код:
$aZ09 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$str_len = (strlen($aZ09) -1); $result = ''; while ($size--) {$result .= $aZ09[mt_rand(0, $str_len)];} // тест на время: строка = 1.000s; массив = 1.390s;
|
|
|
29.08.2018, 23:53
|
#6
|
Senior Member
Регистрация: 12.07.2009
Сообщений: 1,581
Бабло: $361065
ТС -->
|
ТС
Затупил с примером . Все, что выше не подходит…
Допустим, есть диапазон 1,2,3 (тут могут быть и буквы в нижнем регистре)
Нам нужно получить все возможные для двух комбинаций, пример:
11
12
13
11
21
31
21
22
23
12
22
32
31
32
33
13
23
33
|
|
|
30.08.2018, 00:01
|
#7
|
zenno.pro
Регистрация: 29.05.2014
Сообщений: 961
Бабло: $138858
|
Цитата:
Сообщение от smsupport
Затупил с примером . Все, что выше не подходит…
Допустим, есть диапазон 1,2,3 (тут могут быть и буквы в нижнем регистре)
Нам нужно получить все возможные для двух комбинаций, пример:
11
12
13
11
21
31
21
22
23
12
22
32
31
32
33
13
23
33
|
11
22
33
поидее быть не может
|
|
|
30.08.2018, 00:20
|
#8
|
Хитрожопый
Регистрация: 15.07.2008
Сообщений: 599
Бабло: $93800
|
Цитата:
Сообщение от Drow
На пхп, токма зачем тебе больше 4х букв?
PHP код:
//$blah = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); $blah = array ('0','1','2','3','4','5','6','7','8','9'); $extension = '.com';
//for ($a=0; $a<10; $a++) //{ for ($b=0; $b<10; $b++) { for ($c=0; $c<10; $c++) { $domain = $blah[$a] . $blah[$b] . $blah[$c] . $extension ;
$fpz=fopen("lll.txt","a"); @chmod("lll.txt",0666); fputs($fpz,"$domain\n"); fclose($fpz); echo "$domain<br>"; } } //}
|
Очень плохой код. Да ещё и не рабочий.
Каждую итерацию цикла (ещё и вложенного) - долбить ФС. Ужас.
Цитата:
Сообщение от веломан
Drow, без массива быстрее
PHP код:
$aZ09 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$str_len = (strlen($aZ09) -1); $result = ''; while ($size--) {$result .= $aZ09[mt_rand(0, $str_len)];} // тест на время: строка = 1.000s; массив = 1.390s;
|
И ещё один кусок нерабочего кода. Откуда ж вы такие беретесь?
2ТС:
https://planetcalc.ru/4242/
|
|
|
30.08.2018, 00:37
|
#9
|
Senior Member
Регистрация: 12.07.2009
Сообщений: 1,581
Бабло: $361065
ТС -->
|
ТС
Lord_Alfred, Штука быстрая, но с цифрами лажает по моей задаче, не проверял, но предполагаю что и с буквами та же шляпа будет.
Выдает такой диапазон:
12
13
21
23
31
32
Вместо
11
12
13
11
21
31
21
22
23
12
22
32
31
32
33
13
23
33
Пофиг на дубли, их просто подчистить другим софтом...
|
|
|
30.08.2018, 00:40
|
#10
|
Хитрожопый
Регистрация: 15.07.2008
Сообщений: 599
Бабло: $93800
|
Цитата:
Сообщение от smsupport
Lord_Alfred, Штука быстрая, но с цифрами лажает по моей задаче, не проверял, но предполагаю что и с буквами та же шляпа будет.
Выдает такой диапазон:
12
13
21
23
31
32
Вместо
11
12
13
11
21
31
21
22
23
12
22
32
31
32
33
13
23
33
Пофиг на дубли, их просто подчистить другим софтом...
|
Потому что она выдаёт без повторов. Зачем тебе они? Если уж так нужны, то поищи аналог с повторами (может и там на сайте есть).
Это ж простая комбинаторика, основа теорвера.
|
|
|
|