Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите в решении задачи... Нужно короткое, гениальное решение. 
V
    Опции темы
jzZ
Дата 22.7.2006, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



Собственно, вот задача:
1) Нужно сравнить какие - то 3 числа ($a, $b, $c) т.е. узнать какое из них больше других (обязательно чтобы 1 было больше других!) Решение знаю, но у меня длинное нужно чтобы было короткое и желательно гениальное.  smile*
БУдет использоваться как вычленение из 3х таблиц бд, и сравнение какой id больше, числа собсна int.
Тему не удаляйте в будущем, думаю многим новичкам будет полезно увидеть немного обычной логики )

P.S. пишите в любой форме, можно в функцию забить, я не обижусь ) И пишите только код, с небольшими комментариями, никакого  smile !!! писать только по теме 

Это сообщение отредактировал(а) jzZ - 22.7.2006, 17:52
PM MAIL   Вверх
arial
Дата 22.7.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



max 


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
MastEdm
Дата 22.7.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Master
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 3.12.2005
Где: Москва, МГИУ

Репутация: нет
Всего: 2



Код

        $a = 1;
    $b = 3;
    $c = 5;

    switch(max($a,$b,$c)) {
      case $a:
        echo("a"); break;
      case $b:
        echo("b"); break;
      default:
        echo("c");
    }
 
PM MAIL   Вверх
jzZ
Дата 22.7.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



рЫбята )) Мануал мы читали и знаем что max() решение разработчиков, а где же логика? Я потому и написал нужно гениальное короткое решение, я то думал догадаетесь что надо своими силами попытаться ) без max! Так интересней! Жду красивых решений ) 
PM MAIL   Вверх
arial
  Дата 22.7.2006, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Цитата(jzZ @ 22.7.2006,  19:32)
рЫбята )) Мануал мы читали и знаем что max() решение разработчиков, а где же логика? Я потому и написал нужно гениальное короткое решение, я то думал догадаетесь что надо своими силами попытаться ) без max! Так интересней! Жду красивых решений )

В таком случае, считаю вопрос далёким от гениальности. 


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Mayk
Дата 22.7.2006, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 2
Всего: 134



Очевидное наивное решение, что приходит в голову, это сделать max, которая возвращает ссылку, а потом применить её несколько раз.

Примерно так.
Код

function& ref_max(&$a, &$b ){
    if($b > $a)
        return $b;
    return $a;
}

function& test(&$a,&$b,&$c)
{
    $t =& ref_max($a, ref_max($b, $c));
    return $t;
};

echo "hello world";
$a=4;
$b=15;
$c=6;

$t =& test($a,$b,$c) ;
$t = -777;
echo $a, $b, $c;

 


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
jzZ
Дата 22.7.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



Код

$d = array($a, $b, $c);
$lol = 1;
foreach ($d as $v);
     if ($v > $lol) {
        $lol = $v;
     }
  echo($lol);

Вот в поддержку темы решил подкрепить )
Цитата

В таком случае, считаю вопрос далёким от гениальности.  

Возможно, но
Хотел вообщето привлечь новичков, чтобы отвлечь их от напсиания стандартов типа новостей, голосования, наверняка многим собственная cms пока не по зубам. Тут просто немного логики... 
PM MAIL   Вверх
arial
Дата 22.7.2006, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Код
<?php
function my_max($array)
{
    $max = array_shift($array);
    foreach ($array as $value) {
        $value > $max and $max = $value;
    }
    return $max;
}

$array = array(5, 8, 24, 1, 3);

echo my_max($array);
?>


Добавлено @ 19:01 
В общем то-же, что и у jzZ. Типа опоздал. 


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Mayk
Дата 22.7.2006, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 2
Всего: 134



Из hacker's delight 
Код

//bitwise eq. 
function eq($x, $y){
    return ~($x ^ $y);
}


//doz = 0 if x <  y 
//    x-y, x >= y
function doz($x,$y){
    $d = $x - $y;
    return $d & ((eq($d,(($x^$y)&($d&$x)))) >> 31);
}

function hd_max($arr)
{
    
    $x = $arr[0];

    foreach (func_get_args() as $y) {
                $x = doz($x,$y) + $y;
    }

    return $x;
};

echo "hello world";


$a=334; $b=3315; $c=65;


$t = hd_max($a,$b,$c) ;
echo $t;

     

Это сообщение отредактировал(а) Mayk - 22.7.2006, 19:23


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
jzZ
Дата 22.7.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



Mayk
Мде, в теме для новичков, код с побитовыми операциями без малейшего признака на комментирование. 
PM MAIL   Вверх
Mal Hack
Дата 23.7.2006, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Кажется мне, что задача не правильно посталенна... Можно узнать что ты вообще пытаешься сделать? 
PM ICQ   Вверх
S.A.P.
Дата 23.7.2006, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 3
Всего: 71



Код

$max = $a < $b ? ($b < $c ? $c : $b) : ($a < $c ? $c : $a);

не нашол куда тут комментарий прицепить. Сам разберешься  smile . 
PM MAIL   Вверх
Mal Hack
Дата 23.7.2006, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



S.A.P., не хотел я такое писать, чтоб не создавать у пользователей иллюзию "а как это пашет" smile))
5 балллов )smile))
 
PM ICQ   Вверх
jzZ
Дата 23.7.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



S.A.P.
во накрутил, молодец я так бы не додумался )

Добавлено @ 18:38 
Ладно короче закрывайте тему нафиг новички не хотят простые задачи решать ) ни один сюда не написал ) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.