Я хочу написать функцию для генерации и хранения координат n-куба, и я понятия не имею, с чего начать. В частности, я хочу сгенерировать координаты для равномерно или случайным образом распределенного облака точек для этого n-куба и сохранить их. Что было бы хорошим способом начать с этого или, если возможно, быстрого решения?
C++ Генерация и сохранение координат n-куба
comment
И что мотивирует вас написать эту функцию? Случайно не домашнее задание?
- person   schedule 18.06.2010
comment
Что понимаете вы в этой проблеме? Кроме того, какие ограничения, если они были наложены на вас, и какие ограничения вы можете просто выбрать? Например, вы можете произвольно решить выровнять предмет в системе координат, тогда это станет очень просто...
- person dmckee --- ex-moderator kitten   schedule 18.06.2010
comment
Если это домашнее задание, пожалуйста, отметьте его соответствующим образом.
- person Francesco   schedule 18.06.2010
comment
Возможный обман/соответствие: stackoverflow.com/questions/3070425 /c-функция-вызов-себя/
- person rubenvb   schedule 18.06.2010
comment
@ Нил Баттерворт Ты тоже так думал в прошлый раз. Возможно, мне просто любопытно и нравится исследовать новые математические концепции, и у меня будет невинный мотив. Он не помечен ненадлежащим образом. РЕДАКТИРОВАТЬ: Кроме того. Какой-нибудь запутавшийся учитель задал бы такую бесполезную хрень в качестве домашнего задания. Создание конкретных решений было бы достаточно практически для любого приложения. Это мой программный эквивалент доказательства, общее решение.
- person Ben   schedule 18.06.2010
comment
@Ben Нет, так как я редактировал теги. Однако это не сайт математических концепций.
- person   schedule 18.06.2010
comment
@Ben: Нейл озабочен не тем, что домашние задания — это плохо. Они в порядке. Это связано с тем, что педагогические вопросы должны рассматриваться несколько иначе, чем другие: они требуют как подхода обучения рыбе, так и исследования всех вариантов. Это сильно отличается от того, что я пытаюсь сделать это. вопрос. Я пытаюсь узнать что-то новое и застрял здесь... в значительной степени находится в той же лодке, что и формальное домашнее задание.
- person dmckee --- ex-moderator kitten   schedule 18.06.2010
comment
@Neil Butterworth Однако я бы не согласился с тем, что это вопрос о том, как реализовать математическую концепцию в программировании, отсюда и тег c ++. В частности, о структуре данных C++ для хранения объекта переменного размера в удобном для доступа и понятном виде, а также о том, как сгенерировать координаты для этого объекта с помощью C++ и заполнить структуру, используемую для его хранения.
- person Ben   schedule 18.06.2010
comment
@dmckee Мне бы понравилось видеть решение не только само по себе, но и для побуждения к дальнейшим размышлениям и исследованиям того, почему и как оно было реализовано таким образом, и какими другими способами оно могло быть реализовано. Даже почему они были отброшены по текущему методу. Я вижу достоинство в том, чтобы создать собственное решение, не видя чужой работы.
- person Ben   schedule 18.06.2010
comment
@Ben Так вот почему ты только что принял ответ, который не охватывает ни одну из этих вещей?
- person   schedule 18.06.2010
Ответы (1)
Я не хочу приводить исходный код C++ для этой задачи, однако вот мысль, как вы могли бы его сгенерировать.
Гиперкуб содержит все битовые строки длины n
. Таким образом, всего имеется 2^n
возможностей для координат.
Теперь, как вы можете сделать это рекурсивно:
если вы хотите сгенерировать координаты для
n=1
, просто верните0
и1
если вы хотите сгенерировать координаты для
n>1
, возьмите0
и соедините его со всеми возможными координатами дляn'=n-1
, затем возьмите1
и соедините его со всеми возможными координатами дляn'=n-1
person
phimuemue
schedule
18.06.2010
Исправьте, если ось n-куба совпадает с основанием системы координат. Учет поворотов в декартовом n-пространстве немного сложнее. Учет недекартова пространства гораздо сложнее.
- person dmckee --- ex-moderator kitten; 18.06.2010
Спасибо. Вы ответили и на другой мой вопрос. Это также отвечает на комментарий о том, что этот тип генерации требует экспоненциального времени выполнения с увеличением размеров. Пора заняться математикой. Я вернусь, если застряну на чем-то конкретном.
- person Ben; 18.06.2010