задачка с переменными

вопросы и ответы по использованию PHP
Ответить
Аватара пользователя
ттбрть
Сообщения: 18
Зарегистрирован: 19 дек 2019, 08:08
Откуда: хохляндия

задачка с переменными

Сообщение ттбрть » 12 фев 2020, 19:53

после цыфр должны ити 2 буквы
комбинацыя букв не должна повторятся
я придумал только вариант написать 676 переменных R под каждый вариант из 2 букв но это долго и заниматся таким лень
есть идеи как сделать это проще?

Код: Выделить всё

$browser->navigate("https://www.google.ru/");
$W="R";
$E="1";
$NB= "123456789";
$R1="qq";
$R2="qw";
$R3="qe";
$R4="qr";
$R5="qt";
$Q="$W$E";
$input->set_value_by_name("q","$NB".$$Q);
$E++;

Аватара пользователя
XwebDeveloper
Сообщения: 20
Зарегистрирован: 13 ноя 2017, 12:53

Re: задачка с переменными

Сообщение XwebDeveloper » 12 фев 2020, 22:41

Можно так сделать, но вариантов получается явно больше чем 676 :).

Все полученные комбинации в массиве $aresult;
// количество полученных результатов
$count_res=1000;

// массивы
$characters = 'abcdefghijklmnopqrstuvwxyz';
$numbers = '0123456789';
// комбинации числа
$length = 2;
$anumbers = array();
// результат
$len_res=4;
$aresult = array();

// заполняем массив с цифрами
get_combin_numbers('');

//print_r($anumbers);

foreach($anumbers as $num)
{
   get_combination($num);
}

print_r($aresult);

// получить все комбинации чисел
function get_combin_numbers($prefix)
{
    global $numbers,$length,$anumbers;
    
    if (strlen($prefix) == $length) 
    {
        $anumbers[ ] = $prefix;
        return;
    }
    for ( $i = 0; $i < strlen( $numbers); $i++ )
        get_combin_numbers( $prefix.$numbers{$i});
}

// комбинации букв
function get_combination($prefix)
 {
    global $characters,$len_res,$aresult,$count_res;

    if(count($aresult)>=$count_res)
       return;
  
    if (strlen($prefix) == $len_res) 
    {
        $aresult[ ] = $prefix;
        return;
    }
    for ( $i = 0; $i < strlen( $characters ); $i++ )
        get_combination( $prefix.$characters{$i});
 }


Аватара пользователя
ттбрть
Сообщения: 18
Зарегистрирован: 19 дек 2019, 08:08
Откуда: хохляндия

Re: задачка с переменными

Сообщение ттбрть » 14 фев 2020, 03:03

[674] => 00zy
[675] => 00zz
[676] => 01aa
[677] => 01ab
[678] => 01ac

не больше) хотя и я ошибся не 676 а 675
К утру нужно запустить авторег с использыванием этого скрипта
Час ушел на то чтоб понять как избавится от этих цыфр [678] => 01aс оказалось не нужно было ничего удалять) а просто заменить $length = 2; на 0 :lol:
использывал я это вот так )

Код: Выделить всё

$NN=0;
for ($meil=1; $meil<9999; $meil++)
{ 
$NN++;
$laters=($aresult[$NN]);
$input->set_value_by_name("username", "9855576XXX$laters");
я уверен что не правельно и это можно сделать проще но ещё не дорос до уровня бога из машины и пусть с костылями но работает как надо :D

Хозяин Гугла
Сообщения: 22
Зарегистрирован: 19 июн 2019, 19:59

Re: задачка с переменными

Сообщение Хозяин Гугла » 14 фев 2020, 14:21

Код: Выделить всё

$n = mt_rand(0, 99);
$l = $submitter->generate_random_nick_name(rand(2,2));
echo "$n$l";
не?

Аватара пользователя
XwebDeveloper
Сообщения: 20
Зарегистрирован: 13 ноя 2017, 12:53

Re: задачка с переменными

Сообщение XwebDeveloper » 14 фев 2020, 15:19

Хозяин Гугла писал(а):
14 фев 2020, 14:21

Код: Выделить всё

$n = mt_rand(0, 99);
$l = $submitter->generate_random_nick_name(rand(2,2));
echo "$n$l";
не?
надо чтоб не повторялось) Можно и так но тогда придётся сохранять это дело в массив и смотреть нет ли там уже такого.

Ответить