|
|
|
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 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
retty пишет: > но мне кажется, что понятие связности относится (имеет смысл) только к > НЕориентированным графам. > Или близко к этому. Нет, это вы ошибаетесь. Для орграфов связность формулируется как возможность перехода из вершины А в вершину Б. При этом можно переходить только по дугам совпадающего направления. Для не орграфов - можно определять так же, только каждую дугу задвоить двумя встречными ориентированными. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 15:34 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
MasterZiv retty пишет: > но мне кажется, что понятие связности относится (имеет смысл) только к > НЕориентированным графам. > Или близко к этому. Нет, это вы ошибаетесь. Для орграфов связность формулируется как возможность перехода из вершины А в вершину Б. При этом можно переходить только по дугам совпадающего направления. Для не орграфов - можно определять так же, только каждую дугу задвоить двумя встречными ориентированными. Posted via ActualForum NNTP Server 1.4 Теперь я понял почему американцы живут лучше нас. Они живут ради жизни , а не ради слов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 16:03 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
MasterZivДля орграфов связность формулируется как возможность перехода из вершины А в вершину Б. При этом можно... Ай, "при этом"......... При этом можно вообще дальше не читать. Этакий маленький блю мари; решил уроки преподать типа ламерам. Дафай еще сюда список рекомендуемой литературы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 18:06 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
retty пишет: > Теперь я понял почему американцы живут лучше нас. Они живут ради жизни , > а не ради слов. Я рад, что ты потратил примерно столько же своей. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2008, 23:42 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. совсем забыл что функция может возвращать список ) все, как еще углУбить и запутать незнаю...но , вродь, написано почтифункционально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 10:29 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
А можно тоже самое, но только на схеме. Я питон виже первый раз в жизни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 12:07 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
lavashА можно тоже самое, но только на схеме. Я питон виже первый раз в жизни. везет тебе ) я схему, например, вообще невидел ниразу ( могу только рассказать как оно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 12:16 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
MasterZiv retty пишет: > Теперь я понял почему американцы живут лучше нас. Они живут ради жизни , > а не ради слов. Я рад, что ты потратил примерно столько же своей. Posted via ActualForum NNTP Server 1.4 Я был неправ. Прошу прощения. Открыл книжку. Там написано, что понятие "связности" даже более содержательно для орграфов, чем для не-орграфов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 20:48 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
ПикеЯ Код: plaintext 1. 2. 3. 4. 5. 6. совсем забыл что функция может возвращать список ) все, как еще углУбить и запутать незнаю...но , вродь, написано почтифункционально? я так кодить не умею.....; здесь можно долго медитировать на эту функцию; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 20:51 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
retty ПикеЯ Код: plaintext 1. 2. 3. 4. 5. 6. совсем забыл что функция может возвращать список ) все, как еще углУбить и запутать незнаю...но , вродь, написано почтифункционально? я так кодить не умею.....; здесь можно долго медитировать на эту функцию; два с половиной дня мелкими перебежками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 18:03 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
ПикеЯ retty ПикеЯ Код: plaintext 1. 2. 3. 4. 5. 6. совсем забыл что функция может возвращать список ) все, как еще углУбить и запутать незнаю...но , вродь, написано почтифункционально? я так кодить не умею.....; здесь можно долго медитировать на эту функцию; два с половиной дня мелкими перебежками я таких людей уважаю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 23:46 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
retty ПикеЯдва с половиной дня мелкими перебежками я таких людей уважаю! ога. 4 строчки непонятного кода за два дня ))) ггы. и это при том, чо наверняка это можно было сделать по-уму и красивше.)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2008, 09:45 |
|
||
|
Scheme Проверить граф на связность
|
|||
|---|---|---|---|
|
#18+
А как всё это переписать на схему? Я питон вижу 1 раз в жизни:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2008, 13:26 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1345271]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 551ms |

| 0 / 0 |
