Генеарция сложного буквенно - цифрового кода

Desh

Новичок
Генеарция сложного буквенно - цифрового кода

Подскажите как сгенерировать такого вида код:
2Xej6GSu9gi30BkTTKn3KjG3RaCcCg9fLmUcFy0DoWDP4wfgw0wq0Rm1m077LM2KRCm2hbEpEKAoWFKWUWO0
Тоесть чтобы и цифры и буквы попадались, и в большом и в мальеньком регистре...
 

berkut

Новичок
PHP:
$str = '';
for ($i = 0; $i < 100; ++$i) {
    $case = mt_rand(1, 3);
    if ($case == 1)
        $asci = mt_rand(48, 57);
    elseif ($case == 2)
        $asci = mt_rand(65, 90);
    else
        $asci = mt_rand(97, 122);
    $str .= sprintf('%c', $asci);
}
echo $str, '<br>';
 

kruglov

Новичок
А это ничего, что вероятность выпадения цифры 1 выше, чем вероятность выпадения буквы A где-то в 2.4 раза ?
 

amorfis

я стараюсь
kruglov прав. Надо чтобы все символы имели одну и ту же вероятность появления. для этого надо между кейсами равномерно распредлить возможные asci-коды. Хотя если это не имеет большого значения, то можно оставить и так.
 

berkut

Новичок
хех, простите лаботряса, но никак не пойму, ибо amorfis[/b сбил меня столку.
kruglov ты имел в ввиду именно 2 символа: 1 и А(тогда в этом случае всё понятно)
или-же вообще срабатывание 1-го и 2-го условия, тогда порчему?
 

kruglov

Новичок
круглов имел в виду именно то, что он имел в виду.

-~{}~ 12.10.05 13:06:

p. s. и amorfis имел в виду то же самое.
 

amorfis

я стараюсь
berkut
А что непонятного?
По твоему алгоритму выбираешь число от 1 - 3.
Если 1 - выборка из 10 элементов.
Если 2 - выборка из 26 элементов.
Если 3 - выборка из 26 элементов.

Так как вероятность выпадания 1, 2 или 3 одинакова, то получаем, что вероятность того, что выпадет единица в 2,6 раза больше, чем у буквы А.
 

berkut

Новичок
Это я понимаю, про это я писал 2-мя моими постами выше. Значит недопонял смысла ваших выражений.
 

amorfis

я стараюсь
berkut
Разводим тут с тобой разговоры от которых ни какого толку. :)
 

full_lamer

Новичок
А если так?
PHP:
$template = '1234567890abcdefghijkmlnoprqstuvwxyzABCDEFGHIJKMLNOPRQSTUVWXYZ'; 
$len = strlen ($template);
$str = '';
for ($i = 0; $i < 100; ++$i) { 
 $str += substr ($template, rand (len), 1);
} 
echo $str, '<br>';
 
Сверху