powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
6 сообщений из 31, страница 2 из 2
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
    #38689565
Фотография Рэт-нагфик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одноразовый вызов shuffle() будет быстрее, чем 10000 раз вызвать random()
...
Рейтинг: 0 / 0
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
    #38689595
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рэт-нагфикодноразовый вызов shuffle() будет быстрее, чем 10000 раз вызвать random()

Во-первых, ваш алгоритм, который все еще не опубликован, не только из этого состоит.

В нем кроме этого вызова shuffle() есть еще, по крайней, мере 3 цикла:
1. инициализация массивов,
2. внутренний цикл shuffle(), который 10000 раз вызвать random(),
3. и финальный проход-перестановка элементов.

Если скажете, что у вас random() заинлайнен, то я запросто сделаю то же самое.

Будем дальше спорить?
...
Рейтинг: 0 / 0
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
    #38689600
Фотография Рэт-нагфик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr SharahovБудем дальше спорить?
не! наверное, не будем! =)
...
Рейтинг: 0 / 0
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
    #38689751
Фотография Рэт-нагфик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, типа так:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
import random

a = [1, 2, 3, 4, 0]

print 'a =', a

b = [0, 1, 2, 3, 4]

random.shuffle(b)

print 'b =', b

c = [0, 0, 0, 0, 0]

for i in range(len(a)):
    c[b[i]] = b[a[i]]

print 'c =', c


Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
>>> ================================== RESTART ==================================
>>> 
a = [1, 2, 3, 4, 0]
b = [3, 2, 0, 1, 4]
c = [1, 4, 0, 2, 3]
>>> ================================== RESTART ==================================
>>> 
a = [1, 2, 3, 4, 0]
b = [2, 4, 3, 1, 0]
c = [2, 0, 4, 1, 3]
>>>
...
Рейтинг: 0 / 0
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
    #38689766
Фотография Рэт-нагфик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это уже типа настоящий, "коммерческий"=), генератор:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
import random

N = 7 ## 7 вершин;

a = range(N)
for i in range(N - 1):
    a[i] += 1
a[N - 1] = 0

b = range(N)
c = range(N)

for next in range(10):
    random.shuffle(b)
    for i in range(N):
        c[b[i]] = b[a[i]]
    print c


Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
>>> ================================== RESTART ==================================
>>> 
[1, 6, 4, 5, 3, 0, 2]
[1, 3, 0, 6, 5, 2, 4]
[6, 4, 3, 1, 0, 2, 5]
[1, 6, 5, 2, 0, 4, 3]
[2, 5, 1, 4, 0, 6, 3]
[2, 6, 3, 1, 0, 4, 5]
[5, 3, 6, 4, 0, 2, 1]
[3, 6, 0, 1, 5, 2, 4]
[6, 4, 3, 1, 5, 0, 2]
[6, 0, 4, 2, 5, 1, 3]
>>> 


и нумерация вершин есно с 0
...
Рейтинг: 0 / 0
Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
    #38689823
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рэт-нагфик,

чёто ты загнул вроде. Чем классический подход не устраивает (предложенный на delphi ранее)?
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
import random

a = [0]*10
for i in range(10):
    k=(int)(random.random()*i)
    a[i]=a[k]
    a[k]=i
print b



Мне кажется так намного проще.
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Есть ли простой и известный способ генерации 2-регулярного графа состоящего из 1 цикла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]