Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.10.2004, 01:04
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 1  
Chas
[+1 14.08.08]
[+1 20.08.08]
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
По умолчанию задачка

есть массив, 216 элементов.
нужно перетасовать элементы списка. Т.е. изменить порядок элементов в нем. Пока придумал следующий вариант:
случайно выбрать ячейку А
случайно выбрать ячейку В
поменять содержимое ячеек местами
повторить n раз

я в пхп не силен. может есть более оригинальное решение?
__________________
~
Never trouble trouble till trouble troubles you!

Старый 21.10.2004, 07:26
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 2  
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
есть. самое что ни на есть не оригинальное.
называется array_shuffle()
__________________
а мы летим орбитами путями не избитыми...

Старый 21.10.2004, 09:32
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 3  
Chas
[+1 14.08.08]
[+1 20.08.08]
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
php rules!
__________________
~
Never trouble trouble till trouble troubles you!

Старый 21.10.2004, 18:43
zeboton вне форума Посмотреть профиль Отправить личное сообщение для zeboton Найти все сообщения от zeboton
  № 4  
zeboton

Регистрация: Jul 2004
Адрес: Москва
Сообщений: 94
Отправить сообщение для zeboton с помощью ICQ
to Nirva

А по-моему функции array_shuffle() нет, а есть str_shuffle() или ее уже ввели?
__________________
Life is a lesson, you will learn it or you are fool!

Старый 21.10.2004, 19:10
styx вне форума Посмотреть профиль Отправить личное сообщение для styx Найти все сообщения от styx
  № 5  
styx

Регистрация: Apr 2003
Сообщений: 243
Есть просто shuffle:
Цитата:
(PHP 3>= 3.0.8, PHP 4 )
shuffle -- Shuffle an array

Старый 23.10.2004, 20:00
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 6  
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
да-да, именно просто shuffle.
вообще за такими вопросами следует обращаться в мануал
http://ua2.php.net/manual/ru/function.shuffle.php
__________________
а мы летим орбитами путями не избитыми...

Старый 23.10.2004, 21:56
Flesh5 вне форума Посмотреть профиль Отправить личное сообщение для Flesh5 Посетить домашнюю страницу Flesh5 Найти все сообщения от Flesh5
  № 7  
Flesh5

Регистрация: Jun 2002
Сообщений: 226
Отправить сообщение для Flesh5 с помощью ICQ
Уважаемый Chas
вами предложенный вариант я использовал в течении 3 лет программируя на Дельфи, и не разу не было ситуации чтобы он дал сбой!
Чем он вас не устраивает?
Если вас интересет сам код на РНР то ниже он приведен (как советует Нирва):
PHP код:
<?php
  $numbers 
range(1,20);
  
srand((double)microtime*1000000);
  
shuffle($numbers);
  for (
$i=1$i<=20$i++)
    {
      echo 
"$numbers[$i]<br>\n";
    }
?>
Удачи!

Старый 23.10.2004, 22:14
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 8  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) Flesh5
вами предложенный вариант я использовал в течении 3 лет программируя на Дельфи, и не разу не было ситуации чтобы он дал сбой!
Чем он вас не устраивает?
Я могу сказать, чем он не устраивает лично меня. Тем, что нужно "повторить n раз", а никто пока не смог внятно объяснить, чему должно быть равно n для массива длиной m.

При том, что есть простые алгоритмы, позволяющие построить случайный массив без привлечения загадочных констант.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 24.10.2004, 12:08
Flesh5 вне форума Посмотреть профиль Отправить личное сообщение для Flesh5 Посетить домашнюю страницу Flesh5 Найти все сообщения от Flesh5
  № 9  
Flesh5

Регистрация: Jun 2002
Сообщений: 226
Отправить сообщение для Flesh5 с помощью ICQ
Цитата:
Оригинал написал(а) Crazy


Я могу сказать, чем он не устраивает лично меня. Тем, что нужно "повторить n раз", а никто пока не смог внятно объяснить, чему должно быть равно n для массива длиной m.

При том, что есть простые алгоритмы, позволяющие построить случайный массив без привлечения загадочных констант.
Я вам открою тайну! В данном случае m = n! Добавлю что функция shuffle наверняка делает тоже самое! :-)

Старый 24.10.2004, 12:37
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 10  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Оригинал написал(а) Flesh5
[b]Я вам открою тайну! В данном случае m = n!
Сам-то понял, что сказал? Посмотри внимательно, что обозначено как m, а что -- n. И что означает "!".
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++


Последний раз редактировалось Crazy; 24.10.2004 в 12:38.
Создать новую тему   Часовой пояс GMT +4, время: 18:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:10.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.