 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
02.12.2005, 10:00
|
#16
|
|
(vagabond)
Join Date: 12 2004
Location: Himalayas
Posts: 823
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by knightmare
Вот еще одна простая задача: случайным образом преремешать символы в строке.
|
А еще можно просто отсортировать строку 
Никаких тебе рандов, и никто обратно не соберет
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
02.12.2005, 21:01
|
#17
|
|
Какое небо, *, Багдад!
Join Date: 10 2005
Location: Ереван
Posts: 1,682
Rep Power: 5
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by Gypsy
Есть ограничения:
- максимальная глубина (вложенность) < 16.
- максимальная глубина отдельно взятого типа скобок <= 8
|
Не хочу оставить впечатление ****звона  , но не слишком ли строгие ограничения? На коде, написанном на Lisp-е, не применишь...
Quote:
|
Originally Posted by Gypsy
Code:
char pOC[] = "{([})]";
#define NUM_BRACKETS (sizeof(pOC)>>1)
Функция проверки баланса:
Code:
int CheckBalance(char* p)
{
int i, c, b = 1, m = 0, n[NUM_BRACKETS], s = NUM_BRACKETS;
while (i=0, (c=*p++) && b)
while ((pOC[i]==c) && ((n[i]<<=4)|=++m),
(pOC[s+i]==c) && (b=((n[i]&0xF)==m--), n[i]>>=4), ++i-s);
return b && (m==0);
}
|
У нас в Ереване газовые трубы проводят примерно в этом же стиле
Кстати, предложение shuffle было inspired by текстом, опубликованным в топике http://forum.armkb.com/showthread.php?t=20893. (текстом, а не топиком - см. даты постов ).
__________________
мордой об лавку
LISP is the only language that is truly beautiful.
d
.
Хочу трахнуть Nissan Skyline R34, и ездить на Alessandra Ambrosio
|
|
|
|
 |
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
02.12.2005, 21:37
|
#18
|
|
(vagabond)
Join Date: 12 2004
Location: Himalayas
Posts: 823
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by knightmare
У нас в Ереване газовые трубы проводят примерно в этом же стиле 
|
Это потому что я для них пишу и код и спецификации
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
02.12.2005, 21:40
|
#19
|
|
(vagabond)
Join Date: 12 2004
Location: Himalayas
Posts: 823
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by knightmare
Не хочу оставить впечатление ****звона  , но не слишком ли строгие ограничения? На коде, написанном на Lisp-е, не применишь...
|
Вообще-то собственный source эта функция запросто проверит (там глубина = 5 кажется).
Если серьезно, то ограничения можно тривиально расширить до любых констант. Использовать несколько int-ов вместо одного, к примеру, или просто 64-битные int-ы. Суть не в этом, а в самом алгоритме
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
02.12.2005, 21:44
|
#20
|
|
Какое небо, *, Багдад!
Join Date: 10 2005
Location: Ереван
Posts: 1,682
Rep Power: 5
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Вообщем идея хорошая - избавились от самой строки (хоть как нибудь)...
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
03.12.2005, 15:56
|
#21
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
А давайте я задачку задам. Как посчитать дистанцию Марчевского-Стеинхауса, задействовав минимальный обьем памяти? Для тех кто не знает речь идет о доле симметричного комплемента в обьединении: d = |(A/B) U (B/A)| / |A U B|.
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
04.12.2005, 15:23
|
#22
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
[QUOTE=Gypsy]Если A и B даны как массивы, и их можно модифицировать на месте,
то можно решить задачу используя постоянное количество памяти (всего несколько переменных).
OK, ya napishu svoe, ono gorazdo koroche, no prosto potomu chto na Pythone  :
PHP Code:
def Dist(A, B):
unilen, sectlen = len(A) + len(B), 0
for el in A:
if el in B:
unilen -= 1
sectlen += 1
return 1 - (float) sectlen / unilen
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
04.12.2005, 20:19
|
#23
|
|
Какое небо, *, Багдад!
Join Date: 10 2005
Location: Ереван
Posts: 1,682
Rep Power: 5
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by Ablertus
|
Не смешно...
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
05.12.2005, 13:08
|
#24
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by knightmare
Не смешно...
|
A kto prosil smejatsja? Eto Python - i bezo vsjakih shutok. Vse kogda to byli arrogantnymi C-istami.
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
05.12.2005, 16:32
|
#25
|
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 44
Posts: 21,717
Rep Power: 9
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
так ведь решение в лоб
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
05.12.2005, 19:48
|
#26
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by Agregat
так ведь решение в лоб 
|
Nu ladno, prosto zahotel prodemonstrirovat krasotu yazyka, a to ego tut vrode kak nedoocenivayut. Est reshenie luchshe? Esli net, poslozhnee zadachku vylozhu
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
06.12.2005, 21:17
|
#27
|
|
Какое небо, *, Багдад!
Join Date: 10 2005
Location: Ереван
Posts: 1,682
Rep Power: 5
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by Ablertus
A kto prosil smejatsja? Eto Python - i bezo vsjakih shutok. Vse kogda to byli arrogantnymi C-istami.
|
Не имею ничего против Python (даже наоборот - за), просто 80% задачи решились встроенными возможностями языка. Это как если задачу про перемешку строки решить на PHP так: <?php $shuffled= str_shuffle($str); ?>
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
07.12.2005, 12:43
|
#28
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by knightmare
Не имею ничего против Python (даже наоборот - за), просто 80% задачи решились встроенными возможностями языка. Это как если задачу про перемешку строки решить на PHP так: <?php $shuffled=str_shuffle($str); ?>
|
A tut ya ne soglasen. Ved zadacha (gromko skazano - zadachka, zadachka!) byla ne o poiske identichnyh elementov v posledovatelnostyax, a o tom kak vychislit sootnoshenie komplementov k unionu. Python kak raz tem i xorosh, chto pozvolyaet skoncentrirovatsa na sobstvenno celi, ne tratya vremeni na rutinnye i nabivshie oskominu kuski koda. Mozhete predlozhit druguyu zadachu, poslozhnee, i my sravnim reshenie, skazhem, na C, na Jave i na Pythone.
__________________
Она нахмурила свой узенький лобок...
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
07.12.2005, 18:15
|
#29
|
|
(vagabond)
Join Date: 12 2004
Location: Himalayas
Posts: 823
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Quote:
|
Originally Posted by Ablertus
Mozhete predlozhit druguyu zadachu, poslozhnee, i my sravnim reshenie, skazhem, na C, na Jave i na Pythone.
|
Хорошая идея. Допустим такая задача:
Найти значение арифметического выражения
(только положительные числа, скобки, и +-*/)
Скажем: (5 + 3) * (5 + 4 - 1) --> 64
Тут главная цель - написать минимальный код, который решает эту задачу, скорость/общность/и т.п. не при чем. Просто хочется потом сравнить эти минимальные решения в разных языках.
|
|
|
|
 |
Re: Минимальные, оптимальные, красивые решения простых задач :) |
 |
08.12.2005, 14:54
|
#30
|
|
Дошкольник
Join Date: 08 2004
Location: Oxford
Age: 48
Posts: 141
Rep Power: 0
|
Re: Минимальные, оптимальные, красивые решения простых задач :)
Ya tolko otmechu, chto samoe glavnie vse taki ne kompaktnost koda, a skorost raboty programmista. Naprimer, kod na Jave izvestna svoej mnogoslovnostyu, mozhet zanimat gorazdo bolshe mesta, chem na C, no pisat na ney vse taki poluchaetsa bystree.
|
|
|
|
|
All times are GMT. The time now is 15:38. |
|
|