2010-06-18 4 views
0

Я хочу написать функцию для генерации и сохранения координат n-куба, и я понятия не имею, как начать. В частности, я хочу сгенерировать координаты для равномерного или случайно распределенного облака точек для этого n-куба и сохранить их. Что было бы хорошим способом начать с этого или, если возможно, быстрого решения?C++ Сгенерируйте и сохраните координаты n-куба

+0

И что побуждает вас хотеть написать эту функцию? Не домашнее задание, случайно? – 2010-06-18 15:10:04

+0

Что вы делаете * вы понимаете о проблеме? Кроме того, какие ограничения, если какие-либо были наложены на вас, и какие ограничения вы можете выбрать? Например, вы можете произвольно решить, что вещь выстроилась в систему координат, тогда это станет очень простым ... – dmckee

+0

Если это домашнее задание, пожалуйста, отметьте его соответствующим образом – Francesco

ответ

2

Я не хочу давать исходный код C++ для этой проблемы, однако, вот мысль, как вы могли ее сгенерировать.

Гиперкуб содержит все битовые строки длины n. Таким образом, имеется всего 2^n возможностей для координат.

Теперь, как вы можете сделать это рекурсивно:

  • , если вы хотите, чтобы генерировать координаты для n=1, просто вернуть 0 и 1

  • , если вы хотите, чтобы генерировать координаты для n>1, возьмите 0 и соедините его со всеми возможными координатами для n'=n-1, затем возьмите 1 и соедините его со всеми возможными координатами для n'=n-1

+0

Исправить, если ось n-куба выровняется с основанием системы координат. Разрешить вращение в декартовом n-пространстве немного сложнее. Учет некартезианского пространства намного сложнее. – dmckee

+0

Спасибо. Вы тоже ответили на мой вопрос. Это также отвечает на комментарий, что такой тип генерации требует экспоненциального времени исполнения с увеличением размеров. Время заниматься математикой. Я вернусь, если я застрял на чем-то конкретном. – Ben