PDA

View Full Version : سوال: چگونه می توانم اعداد تصادفی غیر تکراری تولید کرده و در یک آرایه ذخیره کنم؟



Ali_Sedaghat
جمعه 06 اردیبهشت 1392, 19:18 عصر
با سلام خدمت دوستان
من می خواستم از بین اعداد 1 تا 40 به تعداد 20 عدد به طور تصادفی ایجاد کرده و آن ها را در یک آرایه ذخیره کنم به شرط آن که اعداد تصادفی تکراری نباشند.
من از کد زیر استفاده کردم ولی جواب نداد. هر چی به تکه کد برنامه نگاه می کنم می بینم که منطقش درسته. شاید من اشتباه می کنم.
اگه کسی می تونه این کد رو درست کنه ازش ممنون میشم این زحمت را بکشه.
با تقدیم احترام
صداقت


<?php

$Random_Array = array();
$Random_Array[0] = mt_rand(1,40);

$i = 1;
$Find = 0;
do
{
$Temp = mt_rand(1,40);
for ($j = 0; $j < count($Random_Array); $j++)
{
if ($Random_Array[$j] == $Temp)
{
$Find = 1;
break;
}
}

if ($Find != 1)
{
$Random_Array[$i] = $Temp;
$i = $i + 1;
}
}
while ($i < 20);
?>

مهدی اسماعیلی
جمعه 06 اردیبهشت 1392, 19:40 عصر
تابع :


function UniqueRandomNumbersWithinRange($min, $max, $quantity) {
$numbers = range($min, $max);
shuffle($numbers);
return array_slice($numbers, 0, $quantity);
}


استفاده :


<?
print_r( UniqueRandomNumbersWithinRange(1,40,20) );
?>