Я хочу написать функцию для генерации и сохранения координат n-куба, и я понятия не имею, как начать. В частности, я хочу сгенерировать координаты для равномерного или случайно распределенного облака точек для этого n-куба и сохранить их. Что было бы хорошим способом начать с этого или, если возможно, быстрого решения?C++ Сгенерируйте и сохраните координаты n-куба
ответ
Я не хочу давать исходный код C++ для этой проблемы, однако, вот мысль, как вы могли ее сгенерировать.
Гиперкуб содержит все битовые строки длины n
. Таким образом, имеется всего 2^n
возможностей для координат.
Теперь, как вы можете сделать это рекурсивно:
, если вы хотите, чтобы генерировать координаты для
n=1
, просто вернуть0
и1
, если вы хотите, чтобы генерировать координаты для
n>1
, возьмите0
и соедините его со всеми возможными координатами дляn'=n-1
, затем возьмите1
и соедините его со всеми возможными координатами дляn'=n-1
Исправить, если ось n-куба выровняется с основанием системы координат. Разрешить вращение в декартовом n-пространстве немного сложнее. Учет некартезианского пространства намного сложнее. – dmckee
Спасибо. Вы тоже ответили на мой вопрос. Это также отвечает на комментарий, что такой тип генерации требует экспоненциального времени исполнения с увеличением размеров. Время заниматься математикой. Я вернусь, если я застрял на чем-то конкретном. – Ben
И что побуждает вас хотеть написать эту функцию? Не домашнее задание, случайно? – 2010-06-18 15:10:04
Что вы делаете * вы понимаете о проблеме? Кроме того, какие ограничения, если какие-либо были наложены на вас, и какие ограничения вы можете выбрать? Например, вы можете произвольно решить, что вещь выстроилась в систему координат, тогда это станет очень простым ... – dmckee
Если это домашнее задание, пожалуйста, отметьте его соответствующим образом – Francesco