|
|
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Есть ли какой-то простой и известный способ генерации случайного регулярного графа степени 2 , 2-регулярного графа, но состоящего из 1 цикла, а не из разрозненных? Т.е. есть ли что-то лучше, чем: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. P.S. Т.е. нужно сгенерировать такой граф, чтобы в итоге можно было его обойти полностью таким способом: Код: plaintext 1. 2. 3. 4. и мы бы прошли по всем элементам без исключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 23:27 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Я-бы из постановки убрал фразу "случайного". Иначе это какая-то забавная игра получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 12:43 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
maytonЯ-бы из постановки убрал фразу "случайного". Иначе это какая-то забавная игра получается. Но нужен то именно случайный, для тестов random-read :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 13:31 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
2-регулярный граф, если посмотреть по ссылке то 0-регулярный генерить легко. Это просто вершины. 1 -регулярный требует чётного числа вершин. Тоже легко. 2-х регулярный - количество вершин кратно 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 14:24 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
2-регулярный граф, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 15:01 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
не так понял условия, вот правильный код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 15:21 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
mayton2-регулярный граф, если посмотреть по ссылке то 0-регулярный генерить легко. Это просто вершины. 1 -регулярный требует чётного числа вершин. Тоже легко. 2-х регулярный - количество вершин кратно 3. Это вы по картинке посмотрели? В стиле найдите закономерности Немножко не так, изображенные 3 вершины в каждом цикле это просто случайность. 2-регулярный граф ничего не говорит про количество вершин, он говорит лишь, что из каждой вершины исходит по 2 ребра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 16:15 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahovне так понял условия, вот правильный код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Это вы генерируете множество циклов графов по 3 вершины? mayton немного не правильно сказал, там не обязательно по 3 вершины. И по первоначальному условию должен быть 1 цикл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 16:19 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
2-регулярный граф, Генерируется 1 цикл. P.S. Можно обойтись без промежуточного присваивания значения переменной t. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 16:33 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Что-то я не понял сложности вопроса. Ну например на php самый простой способ, это создать массив и n последовательных элементов и потом его перемешать (не совсем понял принцип прохода по вершинам во втором цикле, но предложенный вариант сработает): Код: php 1. 2. На выходе в $arr нужная последовательность. P.S. на любом другом языке думаю всё ровно так же... на питоне точно... в С++ смотрю есть метод random_shuffle, не знаю то же ли делает, но думаю то же. В чём сложность то? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2014, 12:40 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Програмёр, Я так и сделал сначала, но это не гарантирует, что полученная будет содержать ровно 1 цикл. Во втором решении я это учел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2014, 17:51 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovПрограмёр, Я так и сделал сначала, но это не гарантирует, что полученная будет содержать ровно 1 цикл. Во втором решении я это учел. а... ну да... я бы сказал так, может получиться так, что мы получим несколько незамкнутых графов (когда в graph[x] будет записано само значение x) суть - надо убедиться, что номер каждого элемента не соответствует его значению. Если соответствует - перемешать вручную (ну то есть вызвать random, убедиться, что выпало значение отличное от значения меняемого элемента и поменять местами этот элемент и элемент под выпавшим номером). Мне что-то показалось что твой вариант по теории вероятности даст неодинаковые вероятности для разных элементов оказаться на некотором месте. Но похоже я ошибся) сижу, считаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2014, 18:58 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovПрограмёр, Я так и сделал сначала, но это не гарантирует, что полученная будет содержать ровно 1 цикл. Во втором решении я это учел. ну вы блин даете Как это "не гарантирует"? Номера вершин: 1, 2, 3, 4, 5 Перемешали: 4, 1, 5, 3, 2 Вот вам и граф с одним циклом: 4 - 1 - 5 - 3 - 2 - 4 Вы уже такую хрень пишете, что прямо не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 07:17 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Рэт-нагфикAleksandr SharahovПрограмёр, Я так и сделал сначала, но это не гарантирует, что полученная будет содержать ровно 1 цикл. Во втором решении я это учел. ну вы блин даете Как это "не гарантирует"? Номера вершин: 1, 2, 3, 4, 5 Перемешали: 4, 1, 5, 3, 2 Вот вам и граф с одним циклом: 4 - 1 - 5 - 3 - 2 - 4 Вы уже такую хрень пишете, что прямо не знаю Рандомное перемешивание не гарантирует, что все элементы окажутся не на своих местах. Потому возможен вариант 4 - 1 - 3 - 2 - 5. В таком случае получается незамкнутый граф (и никакого цикла там не будет). Надо убедиться, что ни одно число не осталось на своём месте. Впрочем я об этом уже написал )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 07:41 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Програмёр, с чего он вдруг незамкнутый? Мы же автоматом начало массива смыкаем с его концом. > Надо убедиться, что ни одно число не осталось на своём месте. Что такое это "свое место"? Вы хоть сами понимаете о чем пишете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 08:11 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Рэт-нагфикAleksandr SharahovПрограмёр, Я так и сделал сначала, но это не гарантирует, что полученная будет содержать ровно 1 цикл. Во втором решении я это учел. ну вы блин даете Как это "не гарантирует"? Номера вершин: 1, 2, 3, 4, 5 Перемешали: 4, 1, 5, 3, 2 Вот вам и граф с одним циклом: 4 - 1 - 5 - 3 - 2 - 4 Вы уже такую хрень пишете, что прямо не знаю Уважаемый Рэт-нагфик, вероятно, вам как человеку, хорошо знакомому с программированием и, надеюсь, элементарной логикой, хорошо известно, что один положительный пример ничего не доказывает, в то время как один отрицательный пример опровергает доказательство. Поэтому, если вас не затруднит, пожалуйста, точно укажите, где, по-вашему, написана хрень, и докажите, что это хрень. P.S. Простое перемешивание, которое, как я понимаю, вы предлагаете, автору не подходит, т.к. при этом вполне может получиться граф, у которого каждая вершина не связана ни с одной другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 09:44 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, вот даже не знаю что и сказать. Есть граф, кольцо из вершин 1-2-3-4-5-1 Берем любую случайную перестановку из пяти чисел 1,2,3,4,5 и получаем "новый" граф, с пятью вершинами, просто пере-называя вершины. По "форме" это будет новый граф, но по сути, есно, тот же самый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 10:14 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Рэт-нагфикAleksandr Sharahov, вот даже не знаю что и сказать. Есть граф, кольцо из вершин 1-2-3-4-5-1 Берем любую случайную перестановку из пяти чисел 1,2,3,4,5 и получаем "новый" граф, с пятью вершинами, просто пере-называя вершины. По "форме" это будет новый граф, но по сути, есно, тот же самый. Во-первых, вы не ответили на вопрос относительно вашей хрени. Во-вторых, вы описали ваш алгоритм на пальцах. Теперь попробуйте дать чуть более строгое описание, чем вы это обычно делаете в другом форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 10:25 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Рэт-нагфикAleksandr Sharahov, вот даже не знаю что и сказать. Есть граф, кольцо из вершин 1-2-3-4-5-1 Берем любую случайную перестановку из пяти чисел 1,2,3,4,5 и получаем "новый" граф, с пятью вершинами, просто пере-называя вершины. По "форме" это будет новый граф, но по сути, есно, тот же самый. Что значит "переназываем вершины"? У вершин графа нету названия, есть только номера. В данном случае число, записанное в элементе массива указывает связь между данной вершиной, и той, номер которой записан. То есть graph[2] = 4 - значит, что вторая вершина связана с четвёртой. а теперь представим, мы запустили алгоритм СЛУЧАЙНОЙ перестановки чисел в массиве, и на выход (вероятность мала, но всё же) получили тот же ряд - 1,2,3,4,5. Это значит, что первая вершина связана с первой (сама с собой), вторая со второй и т.д. В итоге получаем граф без рёбер (то есть ни одна вершина не связана с какой либо другой). P.S. из слов "переназываем", я понимаю, что ты представляешь себе запись не так как автор. Потому в принципе ты тоже прав. Ты себе представляешь, что первый элемент массива связан со вторым, второй с третьим и т.д. Потому, перераспределив номера в массиве по новой мы получаем граф с теми же параметрами, но с другим списком связей. Автору же нужно, что бы в каждом элементе лежал не его собственный номер, а именно номер той вершины, с которой существует связь (опять же, если в элемента 2 лежит число 4, значит из 2 можно проследовать в 4). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 11:22 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
ПрограмёрАвтору же нужно, что бы в каждом элементе лежал не его собственный номер, а именно номер той вершины, с которой существует связь (опять же, если в элемента 2 лежит число 4, значит из 2 можно проследовать в 4). да, при таком подходе граф, в общем случае, распадется на несколько несвязных компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 11:59 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Все коды , что выше, - нормально и правильно, но лично я делал бы вот как (мне просто так проще): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. все операции здесь однопроходные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 14:26 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Рэт-нагфикВсе коды , что выше, - нормально и правильно, Могли бы просто в своем непревзойденном стиле сказать, вы раньше уже такую хрень написали, что прямо не знаете. Рэт-нагфикно лично я делал бы вот как (мне просто так проще): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. все операции здесь однопроходные Это все еще не алгоритм, но уже кое-что, что можно обсудить: 1. Очевидно, вы используете больше памяти, чем требуется для решения задачи. 2. Совершенно непонятно, чем, по-вашему, все эти "однопроходные операции" проще одного цикла из двух операторов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 15:00 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov2. Совершенно непонятно, чем, по-вашему, все эти "однопроходные операции" проще одного цикла из двух операторов? Ничем не проще, просто так мне проще. К тому же, это будет работать быстрее, но это не критично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 15:35 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Рэт-нагфикAleksandr Sharahov2. Совершенно непонятно, чем, по-вашему, все эти "однопроходные операции" проще одного цикла из двух операторов? Ничем не проще, просто так мне проще. К тому же, это будет работать быстрее, но это не критично. Хотите сказать, что ваш код быстрее этого, или просто вы так думаете? Код: pascal 1. 2. 3. 4. Хотелось бы, наконец, увидеть ваш супербыстрый код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 15:44 |
|
||
|
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, тут собсно и не должно быть никакого алгоритма. Шаффлом мы переименовываем вершины, а дальше уже и делать-то больше нечего. Был стартовый массив [2, 3, 4, 5, 1] Потом сделали: shuffle([1, 2, 3, 4, 5]) -> [4, 1, 5, 3, 2] Вершина №1 теперь получает имя №4, а №2 - имя №1 и т.д. Разве трудно, зная эти новые имена, получить ответ, в виде: [5, 4, 2, 1, 3] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2014, 15:46 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38686726&tid=1341303]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 521ms |

| 0 / 0 |
