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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нетривиальные решения. Инетресные решения 
:(
    Опции темы
soloweb
Дата 30.11.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Georgian
*


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

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



Прошу написать каки нибудь красивые нетривиальные решения которые вам пришлось реализовывать.
Очень хочется набратся опыта посмотреть на разных профи и их решения каких-то алгоритмов smile
Можно писать как кодом так и словами (документированно) smile

Вот пример: 
Задача: Нужно реализовать обмен значениями 2-х перменных (есть $a = 10 и $b = 20 ) надо чтобы $a=20 а $b=10 и при этом без участия сторонних переменных. smile Красивая задача. Что вы можете предложить? smile

Вот что-то на подобии. Прошу идеи в студию smile

Заранее спасибо.
PM MAIL WWW ICQ   Вверх
SamDark
Дата 30.11.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

Репутация: 0
Всего: 38



soloweb
Это просто задачи. Никакого отношения к реальному коду они не имеют.

p.s. по задаче:
Код

$a = 10;
$b = 20;
$a = $a-$b;
$b = $b + $a;
$a = $b - $a;



--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
soloweb
Дата 30.11.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Georgian
*


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

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



Цитата

Это просто задачи. Никакого отношения к реальному коду они не имеют.

Хорошо а если вместо 10 и 20 возмем $a="k" а $b="p" то тогда что ? smile 
PM MAIL WWW ICQ   Вверх
SamDark
Дата 30.11.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

Репутация: 0
Всего: 38





--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
skyboy
Дата 30.11.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



soloweb, добавятся функции преобразования символа - в код символа и обратно. и все.
со строками - сложнее, так как для строк нет обратимых операций(для чисел таких немало - "+" и "-", "*" и "/", "^" и "ln", исключающее "ИЛИ" ). только с промежуточной переменной.
PM MAIL   Вверх
soloweb
Дата 30.11.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Georgian
*


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

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



Код
            
$a^=$b;
$b^=$a;
$a^=$b;


smile Правда работает тольок с целыми числами
Да прошу не забывать, то что символы по коду в ASCII тоже целые числа smile

Это сообщение отредактировал(а) soloweb - 30.11.2007, 14:45
PM MAIL WWW ICQ   Вверх
WolfON
Дата 30.11.2007, 15:35 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

list($b, $a) = array($a, $b);

PM MAIL ICQ   Вверх
SamDark
Дата 30.11.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

Репутация: 0
Всего: 38



Из той же оперы:
1. Дано целое число. Узнать является ли оно целой степенью двойки.
2. Дана 32-битная переменная. Обратить в ней порядок бит.

А вот уже более практическая:
Обойти дерево без рекурсии.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
CyClon
Дата 1.12.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если интересуют задачи, вот, большой сборник: http://g6prog.narod.ru

Был на олимпиаде, так и не фтыкнул, как решать две задачи, нада будет потом запостить, интересно все-таки smile


--------------------
user posted image
PM   Вверх
Timok
Дата 2.12.2007, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(SamDark)
1. Дано целое число. Узнать является ли оно целой степенью двойки.

Код
function powerOf2($number)
{
    for ($i = 0; $i < 32; ++$i)
        if ($number == 2 << $i)
            return true;
    return false;
}


Цитата(SamDark)
2. Дана 32-битная переменная. Обратить в ней порядок бит.


Код
<?php
$var = bindec('0010111');
print str_pad(decbin($var), 32, '0', STR_PAD_LEFT) . '<br />';

for ($i = 0; $i < 32; ++$i)
    print ($var & pow(2, $i)) ? 1 : 0;
?>


---
издвините, погнал  smile 

Это сообщение отредактировал(а) Timok - 2.12.2007, 01:47
PM MAIL   Вверх
Glip
Дата 3.12.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(SamDark @  30.11.2007,  16:00 Найти цитируемый пост)
А вот уже более практическая:Обойти дерево без рекурсии.

Replace Recursion with Iteration ???

Это сообщение отредактировал(а) Glip - 3.12.2007, 17:51


--------------------
user posted image
PM MAIL   Вверх
SamDark
Дата 3.12.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

Репутация: 0
Всего: 38



Glip
Почти. См. обход в ширину.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
soloweb
Дата 4.12.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Georgian
*


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

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



по поводу обхода! Можно ссылку на подробную инструкцию желательно на русском smile 
PM MAIL WWW ICQ   Вверх
Anarki
Дата 8.12.2007, 08:42 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(soloweb @  30.11.2007,  16:39 Найти цитируемый пост)
Задача: Нужно реализовать обмен значениями 2-х перменных (есть $a = 10 и $b = 20 ) надо чтобы $a=20 а $b=10 и при этом без участия сторонних переменных.  Красивая задача. Что вы можете предложить? 

Код

<?php
$a =10;
$b = 20;
echo '$a='.$a,' $b='.$b,"<br>\n";
sscanf($a.' '.$b,'%s %s',$b,$a);
echo '$a='.$a,' $b='.$b;



Это сообщение отредактировал(а) Anarki - 8.12.2007, 08:42


--------------------
PM WWW   Вверх
SelenIT
Дата 9.12.2007, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Цитата(SamDark @  30.11.2007,  16:00 Найти цитируемый пост)
1. Дано целое число. Узнать является ли оно целой степенью двойки.

Извратное однострочное решение smile:
Код

function powerOf2($number) {  return preg_match('/^10*$/', decbin($number)); }



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

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


 




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


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

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