|
|
Alle möglichen Vektoren durchgehen |
|
fireray |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 23.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 10:59
Titel: Alle möglichen Vektoren durchgehen
|
 |
Guten Tag Forum,
ich habe folgendes Problem und weiß nicht wie ich es effizient lösen soll. Ich brauche alle Vektoren die in Zwischenräume im n-Dimensionalen Raum zeigen.
Also für n=2
(1,1) (1,-1) (-1,1) (-1,-1)
für n=3
(1,1,1) (1,1,-1) (1,-1,1) (1,-1,-1) (-1,1,1) (-1,1,-1) (-1,-1,1) (-1,-1,-1)
Das n ist variabel und wird am Anfang des codes eingelesen !
Kann mir jemand verraten ich alle möglichen vektoren abrufen kann ?
Edit: Wenn es wichtig ist n kann in größen ordnungen von bis zu 100 gehen.
Vielen Dank !
|
|
|
|
|
Napoleon |

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 22.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 11:34
Titel:
|
 |
Hallo,
vlt kannst du im moment damit leben, wie es genau funktioniert
VG
_________________
Die Hartnäckigen gewinnen die Schlachten.
|
|
|
fireray |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 23.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 11:52
Titel:
|
 |
Vielen Dank, ja das reicht mir, erklären kann ich es mir dann ja selbst!
Gruß
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.08.2010, 16:34
Titel: Re: Alle möglichen Vektoren durchgehen
|
 |
|
 |
|
Lieber Fireray,
fireray hat Folgendes geschrieben: |
Edit: Wenn es wichtig ist n kann in größen ordnungen von bis zu 100 gehen. |
Das ist ambitioniert.
Was Du suchst nennt man Permutation mit Wiederholung: Ziehe n Elemente aus der Menge [1, -1] mit Zurücklegen.
Wenn die 1 und -1 Elemente DOUBLEs sind, brauchen sie jeweils 8 Bytes. Für n=100 gibt es (2^100 über 100) Möglichkeiten. Das benötigt schlappe 8.11*10^33 bytes. Ich vermute, das Übersteigt zur Zeit alle auf der Erde installierten RAMs.
Du bräuchtest also ein grundlegend andere Strategie, die ohne das explizite Ausrechnen auskommt. Man kann sich leicht die n.te Permutation ausrechnen, wenn man die (n-1).te vorliegen hat. Damit könnte man also dynamisch einen einzigen Vektor mit den benötigten 100 Elementen erzeugen.
Für weniger Elemente habe ich eine schnelle C-Mex-Funktion geschrieben:
http://www.mathworks.com/matlabcent.....exchange/26242-vchoosekro
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|