2010-06-18 5 views
0

Je veux écrire une fonction pour générer et stocker les coordonnées d'un n-cube et je n'ai aucune idée de comment commencer. Spécifiquement, je souhaite générer les coordonnées pour un nuage de points uniformément ou aléatoirement distribué pour ce n-cube et les stocker. Quelle serait une bonne façon de commencer avec ceci ou si possible, une solution rapide?C++ Générer et stocker les coordonnées d'un n-cube

+0

Et qu'est-ce qui vous motive à vouloir écrire cette fonction? Pas de devoirs, par hasard? –

+0

Que comprenez-vous du problème? De plus, quelles contraintes vous ont-elles été imposées et quelles contraintes pouvez-vous simplement choisir? Par exemple, vous pouvez décider arbitrairement de faire aligner la chose sur le système de coordonnées, alors cela devient très facile ... – dmckee

+0

S'il s'agit d'un devoir, veuillez l'étiqueter correctement – Francesco

Répondre

2

Je ne veux pas donner de code source C++ pour ce problème, cependant, voici comment vous pourriez le générer.

Un hypercube contient toutes les chaînes de bits de longueur n. Il y a donc 2^n possibilités de coordonnées au total.

Maintenant, comment vous pouvez le faire récursive:

  • si vous voulez générer les coordonnées pour n=1, il suffit de retourner 0 et 1

  • si vous voulez générer les coordonnées pour n>1, prendre 0 et concaténer à toutes les coordonnées possibles pour n'=n-1, puis prendre 1 et le concaténer à toutes les coordonnées possibles pour n'=n-1

+0

Corriger si l'axe du n-cube s'aligne avec la base du système de coordonnées. Permettre des rotations dans un espace n cartésien est un peu plus difficile. Permettre un espace non-cartésien est plutôt beaucoup plus compliqué. – dmckee

+0

Merci. Vous avez répondu à mon autre question aussi. Ceci répond au commentaire là aussi que ce type de génération nécessite une exécution exponentielle avec des dimensions croissantes. Il est temps de faire des études de mathématiques. Je serai de retour si je suis coincé sur quelque chose de spécifique. – Ben

Questions connexes