Hallo Victor,
genau.Man kann die Start-und Endwerte der geschachtelten
Schleifen-durchläufe optimieren, das spart immens.
nicht nur, die M müssen ja auf eine ganzzahlige Eurosumme kommen, also gibt es die nur im Viererpack, also „Step 4“.
For H = 1 To 6
Hier braucht man nur 1-5
das meinte ich mit Vordenken. Ich hatte schon rein im Kopf einfach mal durchdacht ob es möglich ist mit 6 Hunden die Bedingung zu erfüllen und kam auf die Antwort nein.
Als ich dann aber meine Antwort schrieb, das war 2 Stunden später weil ich weg vom PC war, hatte ich aber diesen Gedankengang nicht mehr parat und keine Lust den in Worte zu formulieren.
Abgesehen davon, vielleicht hatte ich ja auch falsch gedacht, deshalb sicherheitshalber 1 To 6
For K = 1 To 95
könnte 1-84 ausreichen.
Ich glaube dir und ich hatte Stunden vorher auch irgtendwas in den 80 igern erdacht. Beim gezeigten Code habe ich es mir einfach gemacht,
von jedem Tier mindestens 1 bedeutet ein Viererpack M und 1 H, also 5, ergo max. K = 95
If (H + K) Mod 2 = 0 And (100 - H - K) Mod 4 = 0 Then
Diese Bedingung ist interessant - ich blicke (noch) nicht
durch.
Die Maus-Schleife wird nur bedient, wenn H+K durch 2 teilbar
und
der Rest zu 100 durch 4 ! Habe ich so richtig verstanden ?
Warum ? Ist die zweite Bedingung nicht ausreichend ?
M können nur ganzzahlig auftreten, also 4,8,16,…
Ergo müssen H und K zusammen auch immer gradzahlig sein.
2 H und 1 K geht nicht, sind dann 3 Tiere und M können nicht 97 werden.
Deshalb Mod 2.
Die andere bedingung ist dir ja klar, die Anzahl M muß durch 4 teilbar sein sonst gäbe es keinen ganzzahligen Eurowert.
und auch eventuell für mehr als drei „Objekte“.
Die Schleifenzahl kann dann immens steigen.Solche bedingten
Optimierungen im Lauf (wie von Dir oben) sind da interessant.
Die sind zwingend. Selbst ein Gray-Computer geht bei manchen Dingen in die knie. Und deine, meine, damit verglichen lahme Kiste sowieso.
Wenn du auf dem Gebiet weiter üben willst, nimm dir mal einen Sudoko-Löser als Ziel vor.
Das habe ich auch für mich probiert mit Vba.
Bei so Versuchen lernt man sehr viel.
Auch so Dinge wie was ist eigentlich schneller, Select Case oder IF-ELSEIf. Klar ist Select Case viel besser lesbar aber wenn man Code zeitoptimiert spielt so manches keine Rolle mehr.
Immerhin war mein Code in der lage so ca. 30-40% aller Sudokos zu lösen in wenigen Sekunden.
Die prozentzahl hätte ich bis hin zu 100% schrauben können, einfach in dem ich den Code solange aufrufe bis alles stimmt.
Aber sowas ist mir unwichtig. Ich will ja das rad nicht neu erfinden,
ich will nur wissen wie man, wie ich, so ein Rad baue, ob das unrund läuft, eiert, ist mir Schnuppe, hauptsache es klappt und es dreht sich )
Wenn du dich für so Codes interessiert, jetzt mal für Sudoko, ich fand im Internet eine in meinen Augen Superlöung in Excel-Vba für Sudokos. An sowas kann man lernen wie profis so peanuts die für mich eine Felsengroße Nuß darstellen lösen.
Bei Interesse zeige ich hier den Link, müßte dazu rumkramen oder den Code.
PS: Danke an den hiesigen Mod wenn du dein Zucken in deinem Löschfinger solange unterdrücken kannst bis Victor, ggfs. ich nochmal geantwortet haben.
Dann walte deines Amtes *gg*
Gruß
Reinhard