Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 25.03.2010, 18:37
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Kolyaj, емнип, равномерно будет как-то так:
$max = 100;
$count = 10;
$rand = array();
for ($i = $max; $i--; ) {
    array_push($rand, 1+$i);
}

for ($i = $max; --$i; ) {
    $j = rand(0, $i);
    list($rand[$i], $rand[$j]) = array($rand[$j], $rand[$i]);
}

$rand = array_slice($rand, 0, $count);
Ответить с цитированием
  #22 (permalink)  
Старый 25.03.2010, 22:34
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

блин, жаль тут нету смайлика бьющегося головой об стену.
e1f,
это у тебя такая сильно хитро выделанная замена shuffle?
зачем изобретаешь велосипед?
почему бы вообще тогда не воспользоваться array_rand?
$max=100;
$count=10;

$rand=array();
for($i=1;$i<=$max;$i++)
    $rand[$i]=$i;
$rand=array_rand ($rand,$count);

но работает, оно медленнее(при больших $max и малых $count) чем мое решение
Ответить с цитированием
  #23 (permalink)  
Старый 25.03.2010, 23:52
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /tmp/htmlRZcyZm on line 21

21:
while(in_array($temp_rand=rand(1,$max),$rand_array ));
Ответить с цитированием
  #24 (permalink)  
Старый 26.03.2010, 00:01
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

исправил
как вы работаете на PHP, если не в состоянии определить и исправить опечатку в 6-и строках кода?
Ответить с цитированием
  #25 (permalink)  
Старый 26.03.2010, 00:10
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Вы никогда не учились?

Все прекрастно работает, спасибо большое
<?php

mysql_connect($hostddd, $userdbddd, $passdbddd); 
mysql_select_db($databaseddd);

$db1n = mysql_num_rows(mysql_query("SELECT * FROM writers"));

///////////////////////////////////////////

$rand=array();$temp_rand=NULL; 
for($i=0;$i<$db1n;$i++) 
    { 
    while(in_array($temp_rand=rand(1,$db1n),$rand)); 
    $rand[$i]=$temp_rand; 
    }

/////////////////////////////////////////////

$db1 = mysql_fetch_assoc(mysql_query("SELECT * FROM writers WHERE id='".$rand[0]."'"));

$wri = "<a href='index.php?option=com_content&view=article&id=48#".$db1['id']."'>
<img src='http://localhost/writers/".$db1['photo']."'></img></a>
<br>
<b>".$db1['name']."</b><br><span style='font-size: 11px'>Age: ".$db1['age']."</span>
<br><span style='font-size: 11px'>Country of Residence: ".$db1['country']."</span>
<br><span style='font-size: 11px'>Degree: ".$db1['degree']."</span><br><br>";

$db2 = mysql_fetch_assoc(mysql_query("SELECT * FROM writers WHERE id='".$rand[1]."'"));

$wri2 = "<a href='index.php?option=com_content&view=article&id=48#".$db2['id']."'>
<img src='http://localhost/writers/".$db2['photo']."'></img></a>
<br>
<b>".$db2['name']."</b><br><span style='font-size: 11px'>Age: ".$db2['age']."</span>
<br><span style='font-size: 11px'>Country of Residence: ".$db2['country']."</span>
<br><span style='font-size: 11px'>Degree: ".$db2['degree']."</span><br><br>";

$db3 = mysql_fetch_assoc(mysql_query("SELECT * FROM writers WHERE id='".$rand[2]."'"));

$wri3 = "<a href='index.php?option=com_content&view=article&id=48#".$db3['id']."'>
<img src='http://localhost/writers/".$db3['photo']."'></img></a>
<br>
<b>".$db3['name']."</b><br><span style='font-size: 11px'>Age: ".$db3['age']."</span>
<br><span style='font-size: 11px'>Country of Residence: ".$db3['country']."</span>
<br><span style='font-size: 11px'>Degree: ".$db3['degree']."</span><br><br>";

echo "<br>".$wri.$wri2.$wri3;
?>

Последний раз редактировалось Jekel, 26.03.2010 в 00:12.
Ответить с цитированием
  #26 (permalink)  
Старый 26.03.2010, 00:59
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Jekel
Вы никогда не учились?
извините, если слишком предубежденно к вам отнесся.
да, я когда-то учился.
начинал я достаточно медленно и спокойным равномерным темпом.
к моменту, когда я начал изучать БД, и работу PHP с ними, я был уже в состоянии использовать/отладить такой кусок кода.
хотя ваш вопрос, у меня вполне мог возникнуть, из-за незнания многих ф-ций PHP, и качественного алгоритмического мышления
Ответить с цитированием
  #27 (permalink)  
Старый 26.03.2010, 02:42
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Gvozd,
чооорт, у моего велосипеда ОЧЕНЬ круглые колеса
мда, действительно, если приходить в PHP из Perl, то есть велосипеды
Ответить с цитированием
  #28 (permalink)  
Старый 26.03.2010, 03:54
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от e1f
чооорт, у моего велосипеда ОЧЕНЬ круглые колеса
аналогию не понял
Сообщение от e1f
мда, действительно, если приходить в PHP из Perl, то есть велосипеды
ни за что не поверю что там нету аналогичных функций, и поэтому подобные операции приходится делать руками
Ответить с цитированием
  #29 (permalink)  
Старый 26.03.2010, 12:28
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Gvozd, Вы не поверите
Аналога array_shuffle в Перле нет. Можно использовать модуль List::Util, если очень хочется -- тогда будет. И да, там все сделано руками
Ответить с цитированием
  #30 (permalink)  
Старый 26.03.2010, 17:39
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от e1f
Вы не поверите
Аналога array_shuffle в Перле нет.
что-то у меня жесткое дежавю щаз)))
как же страшно, таки жить....
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск