10 случайных, неповторяющихся чисел

WP

^_^
fixxxer
Опять же есть зависимость от других результатов...
 

fixxxer

К.О.
Партнер клуба
неуникальность автоматически подразумевает зависимость.
по крайней мере, я честно сокращаю отрезок, а не выдумываю какие-то разбиения на диапазоны:)

а на практике то конечно вариант с генерацией и проверкой будет быстрее в большинстве случаев, претензии к нему прежде всего теоретические =)
 

HraKK

Мудак
Команда форума
Я уже честно устал, может еще кто-то по жжот тут? А то меня этот топик радует уже 2 дня)))
 

maxwell

artifex
Wicked, +1.
Есть такой параметр как время.
В теории монетка например может бесконечно падать орлом. Потом столько же падать решкой :)
 

dizet

Новичок
PHP:
<?php

  $in = range(0,1000);
  for($i=0; $i<10; $i++) {
    $key = array_rand($in);
    $out[] = $in[$key];
    unset($in[$key]); 
  }
  echo "<pre>"; var_dump($out); echo "</pre>";

?>
 

dimagolov

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

gray07

Новичок
Дабы тред не умер так просто
PHP:
<?php

function rand_array($max) {
  $to = 10+round(200/$max)+1;
  for($i=1; $i<=$to; $i++) {
    $arr[] = mt_rand(0, $max);
  }
  $arr = array_unique($arr);
  $arr = array_slice($arr, 0, 10);
  return $arr;
}

print_r(rand_array(1000));

?>
 

Bakti9rov

!*|=?
еще :p
PHP:
<?php

function array_rand_fill($length, $max)
{
  $result = array();
  if ($max < $length)
    ;
  elseif ($max == $length)
  {
    for ($i = 0; $i < $length; $i++)
      $result[] = $i;
    shuffle($result);
    return $result;
  }
  else
  {
    for ($i = 0; $i < $length; $i++)
    {
      do {
        $generated_value = mt_rand(0, $max);
      } while (in_array($generated_value, $result));
      $result[] = $generated_value;
    }
  }
  return $result;
}

print_r(array_rand_fill(100, 100));// shuffle()
print_r(array_rand_fill(100, 200));
print_r(array_rand_fill(200, 100));// array()
 

dimagolov

Новичок
Bakti9rov, зачем переписывать то, что уже было реализованно и оттестированно на скорость/равномерность распределения? или вникать в теред лень?
 

maximus007

Новичок
)) Никогда не думал, что безобидный вопрос поднимит такую панику)) Я работу же сдал)) Спасибо за чудо код с случайным числом))
 

HraKK

Мудак
Команда форума
maximus007
Какой код!!! Какой! Какой же ты выбрал?!!! Это нас мучает уже 3 дня!!!!
 

maximus007

Новичок
Вот:)))
PHP:
$limit = 10;
$max_num = 20;
$used_nums = array();
while(1) {
  $random = rand(0, $max_num);
  if(!in_array($random, $used_nums)) {
     $used_nums[] = $random;
  }
  if(count($used_nums) == $limit) { break; }
}
//var_dump($used_nums);                  Объясните как эта строчка влияет на процесс
foreach($used_nums as $temp)
{
		print $temp."<br>";
}
 

kruglov

Новичок
Ну вот опять, все пошли в высшие материи, а человеку order by rand нужен был...
 

dimagolov

Новичок
kruglov, order by rand хитрая штука, ею сервер уложить как два пальца.... с умом подходить надо и понимать что будет при этом сервер делать.
 
Сверху