НГУ

Форумы НГУ
Текущее время: Сб сен 23, 2017 9:43 pm

Часовой пояс: UTC + 7 часов




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: Пн фев 25, 2013 6:52 pm 
Не в сети
Частый гость

Зарегистрирован: Вс май 21, 2006 2:30 am
Сообщения: 41
Откуда: Дорин Александр
Подскажите, пожалуйста, алглоритм получения декартова произведения n множеств в терминах циклов и пр в любом алгоритмическом языке без
использования рекурсивных вызовов. Рекурсивные вызовы переполняют стек
из-за большого количества итераций и , поэтому, здесь не приемлемы.
Здесь n - не константа
С уважением А Дорин


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт фев 26, 2013 10:01 pm 
Не в сети
Опытный автор

Зарегистрирован: Пн май 02, 2005 7:27 pm
Сообщения: 433
Программерам, походу, лень отвечать. :-)
Так что отвечу я:
В топике StackOverflow есть несколько решений на JScript.

Что касается идеи, то она довольно прозрачна.
Предположим для начала, что мы хотим перемножить
три одинаковых 10-элементных множества:

{0,1,...,9} x {0,1,...,9} x {0,1,...,9}.

Полный список элементов такого произведения
(коих ровно тысяча штук) выглядит примерно так:

000, 001, ..., 009,
010, 011, ..., 019,
...,
990, 991, ..., 999.

Ясно, что для их перечисления можно просто тупо
"посчитать" от 0 до 999 в десятичной системе счисления.

Теперь уже рукой подать до общего случая:
для каждой позиции фиксируем свое основание счисления,
равное мощности соответствующего множества-множителя,
и считаем в этой "мультиосновной" системе от 0 и до упора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 18, 2014 1:38 am 
Кнут "Искусство программирования", том 4 выпуск 2


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 30, 2014 10:26 pm 
Почитай Пронина, программирование С++ том 3


Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 7 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB