|
|
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, нужно решить задачу: проверить граф на связность, граф задаётся списком пар: ((1 2) (2 3) (4 4)). (4 4)-это изолированная вершина. Что делать не знаю.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 12:19 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
Простой волновой алгоритм. Сначала список пар запишем в виде: Код: plaintext 1. 2. 3. 4. Стартуем. Берем два пустых сета (sets) А() и Б(). Добавляем в А() напр. вершину № 1: А(1) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2008, 17:48 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
В Sheme нет циклов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2008, 12:42 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
А что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2008, 12:44 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
sotny пишет: > В Sheme нет циклов... Чего ? еще скажи, что GOTO там нет ... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2008, 13:05 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
MasterZiv пишет: > > В Sheme нет циклов... > > Чего ? еще скажи, что GOTO там нет ... А даже если и нету, то есть рекурсия, которая циклы заменяет. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2008, 13:09 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
MasterZiv пишет: > > > В Sheme нет циклов... Если это единственная проблема, возможно, этот материал поможет. http://schemecookbook.org/Cookbook/IdiomLoopingConstructs Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2008, 13:48 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
ВМКшник чтоли?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2008, 18:16 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
sotnyВ Sheme нет циклов... Есть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 08:43 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. как оно работает я, есличестно, до конца не понял ))) изначально написал циклом и ИФом вместо МАП. потом все поубирал. работает, наверное, из-за того, что визитед получается глобальным? ага. и тут еще (2,3)<>(3,2) . тоесть направление играет роль. забыл как это поумному звучит. анука скажитека - я правильно сделал? )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 16:35 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
ой... Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 16:39 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
ПикеЯой... Код: plaintext 1. 2. действительно, вот так, сходу и не поймешь как оно работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 18:45 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
retty ПикеЯой... Код: plaintext 1. 2. действительно, вот так, сходу и не поймешь как оно работает ога, еще и "осмысленные" имена переменных ) идея какая - обходить граф и считать "посещенные" ребра, записывая их в список. (я чево-то подумал, что в связном графе количество посещенных ребер должно быть равно вообще количеству ребер.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 10:00 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
я тоже не большой знаток графов, но мне кажется, что понятие связности относится (имеет смысл) только к НЕориентированным графам. Или близко к этому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 10:16 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
ПикеЯ retty ПикеЯой... Код: plaintext 1. 2. действительно, вот так, сходу и не поймешь как оно работает ога, еще и "осмысленные" имена переменных ) идея какая - обходить граф и считать "посещенные" ребра, записывая их в список. (я чево-то подумал, что в связном графе количество посещенных ребер должно быть равно вообще количеству ребер.) и почему ребер? вершин; "посетить ребро" звучит как-то двусмысленно. Есть в этом какой-то оттенок непристойности ("обождь; я отскочу за угол; по нужде") Хорошо что не по большой (я очень надеюсь). И это жизнь. А в жизни всякое случается. Увы, как нам не хочется обратного. Я б тоже типа хотел курить щас сигару, в гамаке, и поучать всех теории графов. Увы, .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 10:21 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
retty и почему ребер? вершин; "посетить ребро" звучит как-то двусмысленно. Есть в этом какой-то оттенок непристойности ("обождь; я отскочу за угол; по нужде") Хорошо что не по большой (я очень надеюсь). И это жизнь. А в жизни всякое случается. Увы, как нам не хочется обратного. Я б тоже типа хотел курить щас сигару, в гамаке, и поучать всех теории графов. Увы, .... во - ориентированный граф. точно ) пол-года дискретки тринадцать лет назад таки сгладились в моей голове полностью. посетить вершину, но, согласись, "пройтись по ребру" тоже как-то по садистски звучит ))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 10:58 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
все-таки "пройтись по ребру" звучит намного мягше и тщительнее; а вот "посетить ребро" -- уже подозрения возникают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 11:10 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
rettyвсе-таки "пройтись по ребру" звучит намного мягше и тщительнее; а вот "посетить ребро" -- уже подозрения возникают. лаадн, согласен на фразу "посмотреть на ребро". ;) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. вот тут вот ориентированность уже не требуется. но как-то некрасиво однако (( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 11:42 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
Еще лучше: "пройти ВДОЛЬ ребра". Т.е., не по самому ребру, а возле него (т.е., "вдоль" (и быстро)). 2. Красоты нам не нужны. Нужна точность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 12:25 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
rettyЕще лучше: "пройти ВДОЛЬ ребра". Т.е., не по самому ребру, а возле него (т.е., "вдоль" (и быстро)). 2. Красоты нам не нужны. Нужна точность. во. "вдоль" - звучит красиво. а вот за точность... как ее обеспечить-то, если алгоритм "понимается" где-то на уровне подсознания а отлаживается методом "а если вот так попробывать?"... тестирование, вроде, показывает правильность работы. некрасиво мне в том, что никак не придумаю "однострочную" r() . из-за необходимости сделать visited.append() один раз при каждом "падении" в процедуру. хотя... Код: plaintext 1. 2. 3. 4. 5. 6. теперь про лямбду почитать надо...)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 12:47 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
ай, да нафик тебе эта лямбда, если алгоритм понимается на полу-уровне ну представь себе какие-нибудь бикфордовы шнуры, к вершинам ты поджег ; побежали змеи..... :) какие-то вершины не загорелись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 13:00 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
rettyай, да нафик тебе эта лямбда, если алгоритм понимается на полу-уровне ну представь себе какие-нибудь бикфордовы шнуры, к вершинам ты поджег ; побежали змеи..... :) какие-то вершины не загорелись ) да нее, это то понятно. кстати бикфордовы шнуры не катят - от вершины, в случае разветвления, огоньки одновременно поползуть по разным маршрутам. это не рекурсия))) в рекурсии он должен догореть до конца по одной ветке, потом быстренько-быстренько вернуцца к развилке и начать гореть по другой. лямда мне не нужна - намного понятней без нее, и скобок поменьше. интерестно доделать так, чтобы переменных небыло. явных. убрать, чем-то заменить, список посещенных ребер. ой. "список ребер, вдоль которых я уже ходил" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 13:09 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
Рекурсия (или цикл) в том, что мы начинаем с одной единственной вершины; потом идем к ее детям; от детей -- к внукам (изначальной вершины) и т.д. пока не достигнем "насыщения", или Конца Всего (как и предрекали сионские мудрецы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 14:26 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
rettyРекурсия (или цикл) в том, что мы начинаем с одной единственной вершины; потом идем к ее детям; от детей -- к внукам (изначальной вершины) и т.д. пока не достигнем "насыщения", или Конца Всего (как и предрекали сионские мудрецы). вопщем конечно так то оно так, но: в моем понимании рекурсия таки работает последовательно с откатами. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 14:59 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
ПикеЯ rettyРекурсия (или цикл) в том, что мы начинаем с одной единственной вершины; потом идем к ее детям; от детей -- к внукам (изначальной вершины) и т.д. пока не достигнем "насыщения", или Конца Всего (как и предрекали сионские мудрецы). вопщем конечно так то оно так, но: в моем понимании рекурсия таки работает последовательно с откатами. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. с какими откатами? :) пля, ну рекурсия -- это эвфемизм такой, для цикла. Не нужна она совершенно тут. Сегодня 20-е. Конец Open Contest 2008 http://www.spoj.pl/ZFUN08/ Уважаю этих пацанов. И задачи были шикарные. Подскажи идею для чомпа: http://www.spoj.pl/ZFUN08/problems/CLK/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 15:32 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35321705&tid=1345271]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 385ms |

| 0 / 0 |
