Задание из учебника Python на PHP
Есть задание в учебнике по Python:
Создайте список или кортеж, содержащий серию из 10 чисел и 5 букв. Случайным образом выберите 4 числа или буквы из списка. Выведите сообщение о том, что билет, содержащий эту комбинацию из четырех цифр или букв, является выигрышным. Анализ лотереи: напишите цикл, который проверяет, насколько сложно выиграть в смоделированной вами лотерее. Создайте список или кортеж с именем my_ticket. Напишите цикл, который продолжает генерировать комбинации до тех пор, пока не выпадет выигрышная комбинация. Выведите сообщение с информацией о том, сколько выполнений цикла понадобилось для получения выигрышной комбинации.
В общем смысл сделать массив из которого берётся 4 значения и сравниваются с переменной из 4х символов. Значения перебираются до тех пор пока не совпадут, кол-во итераций записывается.
Я решил попробовать сделать это на php, однако получилась ересь, поправьте меня пожалуйста, что сделал не так и скажите как бы это сделать проще и правильнее.
$arr = array(1,2,3,4,5,6,7,8,9,0,'a','b','c','d');
$answer = array_rand( $arr , 4 );
$numb1 = $arr[$answer[0]];
$numb2 = $arr[$answer[1]];
$numb3 = $arr[$answer[2]];
$numb4 = $arr[$answer[3]];
$numb = $numb1 . $numb2 . $numb3 . $numb4 ;
$final = "12cd";
for ($s=0; $numb != $final ; $s++) {
if ($numb == $final){
echo $s;
exit;
}
};
?>
Почти уверен, что я написал ужасно, но ничего другого не придумал, к сожалению.
Ответы (1 шт):
По итогу это, не совсем то, что нужно, но оно выполняет ту же функцию, только не берётся 4 случайных символа из массива, а перемешивается сам массив и берётся 4 числа.
$numb = function(){
$arr = array(1,2,3,4,5,6,7,8,9,0,'a','b','c','d');
shuffle($arr);
return implode('', array_slice($arr, 0,4));
};
$cc = "4568";
$count = 0;
while ($numb() !== $cc) {
$numb();
$count++;
};
echo "<br>";
echo("количество попыток для получения числа $cc, равно $count");