|
|
Vektor mit Gesamt-Obergrenze auffüllen |
|
Cherup |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 29.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.04.2014, 10:34
Titel: Vektor mit Gesamt-Obergrenze auffüllen
|
 |
Hallo,
ich habe mal wieder ein Brett vorm Kopf. Ich weiß, dass der Titel nicht ganz aussagekräftig ist, aber mir ist leider kein besserer eingefallen...
Das Problem:
Ich habe einen Vektor mit 9 Elementen, wobei jedes Element die Werte von 0 bis 200 annehmen kann. Allerdings darf die Gesamtzahl 200 nicht überschritten werden, [200,150,0,..,0] ist also nicht zulässig, [50,150,0...,0] dagegen schon.
Ich möchte nun alle möglichen Kombinationen von Werten haben und diese zur weiteren Verarbeitung an eine andere Funktion übergeben.
Ich hoffe, ich habe das Problem verständlich genug beschrieben.
Natürlich kann ich das Ganze brutal mit 9 geschachtelten for-Schleifen machen, aber ich wüßte gern, obs einen etwas eleganteren Weg gibt.
Viele Grüße
Cherup
_________________
Linux is like a Wigwam: no Windows, no Gates and an Apache inside
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 27.04.2014, 10:55
Titel:
|
 |
|
|
Cherup |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 29.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.04.2014, 11:01
Titel:
|
 |
Hi,
vielen Dank, das hilft mir sehr weiter.
Damit ist die Frage wohl beantwortet
Viele Grüße
Cherup
_________________
Linux is like a Wigwam: no Windows, no Gates and an Apache inside
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.04.2014, 11:08
Titel:
|
 |
Hallo,
wenn ich den Vorschlag aus dem von winkow verlinkten Thread richtig verstehe, dann würden da in diesem Fall 200^9 Permutationen erzeugt. Das dürfte den Speicher des Rechners sprengen.
Letztlich liegt es an dir festzulegen, wie die Komponenten verteilt sein sollen. Eine Möglichkeit zur Erzeugung solcher Vektoren wäre
Eine andere wäre:
Grüße,
Harald
|
|
|
Cherup |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 29.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.04.2014, 12:59
Titel:
|
 |
Das mit dem Speicherproblem ist mir bewusst, und überlege gerade, wie ich es umgehen kann.
Bei deinem Vorschlag wird der Vektor randomisiert gefüllt, ich bekomme also nicht mit Sicherheit alle Permutationen...
_________________
Linux is like a Wigwam: no Windows, no Gates and an Apache inside
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.04.2014, 13:06
Titel:
|
 |
Hallo,
Zitat: |
Bei deinem Vorschlag wird der Vektor randomisiert gefüllt, ich bekomme also nicht mit Sicherheit alle Permutationen. |
Nein. Es ist aber ein Ding der Unmöglichkeit, alle 5.12e20 Kombinationen zu "bekommen". Und selbst wenn du sie "bekommen" könntest, wird man es nicht erwarten können, bis sie verarbeitet sind.
Gehen wir das doch mal von einer anderen Seite an: welches Problem möchtest du letztlich lösen?
Grüße,
Harald
|
|
|
Cherup |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 29.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.04.2014, 13:09
Titel:
|
 |
ich brauche ja nicht alle permutationen, sondern nur die mit einer Gesamtsumme bis 200. dadurch wird es letzlich möglich...
ich werde es wohl doch per brute-force machen müssen...
_________________
Linux is like a Wigwam: no Windows, no Gates and an Apache inside
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 27.04.2014, 13:27
Titel:
|
 |
Hallo,
auf die Gefahr hin, dass ich mich wiederhole: was willst du denn mit diesen Permutationen machen?
Selbst wenn man nur Zahlen bis 22 zulassen würde, wären es immer noch 1.2e12 Kombinationen, also weiterhin zu viele zum Speichern und wahrscheinlich auch zum Verarbeiten.
Grüße,
Harald
|
|
|
|
|
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.
|
|