PDA

View Full Version : ايجاد اعداد رندوم بدون تكرار



bps20590
سه شنبه 29 دی 1388, 17:45 عصر
با سلام
من نيخواهم بين 1000 تا 9999 هربار يك عدد رندم ايجاد بشه بطوريكه عدد تكراري داده نشود چطور بايد اينكار را بكنم

h.emamie
سه شنبه 29 دی 1388, 18:58 عصر
اگر تعداد عددهاي تصادفي كه مي خواهي داشته باشي خيلي زياد نيست مي توني از آرايه ها هم استفاده كني .

برنامه زير 100 عدد رندوم ايجاد مي كنه بدون تكرار :




$randoms = array();
for($i=0;$i<100;$i++)
{
do
{
$tmp = rand(1000,9999);
}
while(in_array($tmp,$randoms));
$randoms[] = $tmp;
}

امیـرحسین
سه شنبه 29 دی 1388, 20:05 عصر
هر رندومی در عین اتفاقی بودن، دارای یه الگوی مشخصیه.
شاید بتونید برای خودتون یه الگو ایجاد کنید. برای ایجاد مقادیر غیرتکراری بهترین عامل کمکی، زمان هست که تکرار نمیشه یعنی می تونید پایه الگوتون رو زمان microtime قرار بدید و باهاش کار کنید.

h.emamie
سه شنبه 29 دی 1388, 23:20 عصر
آقا این کد خوبه به نظر شما ؟! به نظر شما عدد رندم در آرایه که گذاشتی الان معنی داره ؟! :لبخند:

پس یهو بیایم یه آرایه بزارین از 1000 تا 9999 توش ایندکس بزاریم ! دیگه چرا پروسس خرج می کنی برای ساخت یه عدد رندم ؟!

بعد وقتی صفحه رفرش بشه چه جوری می خوای آرایه قبلی رو بگیری ؟! منظورم randoms است !؟

بهترین کار استفاده از دیتا بیس و یا سریال کردن مقدار کوکی است !

موفق باشید !

عجب !
فكر نمي كني خيلي داري زود قضاوت مي كني ، پياده شو با هم بريم .
اين بنده خدا يك سوال مطرح كرده و اصلا معلوم نيست هدف برنامه چيه و براي چه كاري هست ، بعد شما گير دادي كه حتما بايد با ديتابيس انجام بشه ، من كه نگفتم بياد حتما از اين كد استفاده كنه ، اين كد در حد يك پيشنهاد و راه كار هست و كليت كار رو بيان كرده است .
براي اظهار نظر دقيق و اينقدر با اطمينان اول بايد كاملا هدف برنامه مشخص باشه .

تعقل ، تفكر ، تدبر .