Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Ausgabe aller möglichen Zahlenkombinationen (Kofferschloss)
#11
Ich lösche dennoch …
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#12
Kleine Spielerei: Variable Anzahl Rädchen, jedes Rädchen mit individuellen Einstellmöglichkeiten:
Code:
Option Explicit

Sub Kombinationen()
Dim Rädchen As Variant
'Vorgabe: Anzahl "Rädchen", jeweils von 0 bis Obergrenze
'z. B. Rad 1 von 0 bis 7, Rad 2 von 0 bis 13, Rad 3 von 0 bis  9
Rädchen = Array(7, 13, 9)


Range("A:A").ClearContents
Range("A1").Value = "Kombinationen"
ReDim erg(0 To UBound(Rädchen))
Call RecLoop(Rädchen, erg)
End Sub

Sub RecLoop(ByVal Rädchen, ByRef erg As Variant)
Dim i As Long, f As Variant: f = Rädchen

If UBound(Rädchen) > 0 Then ReDim Preserve f(0 To UBound(f) - 1) Else f = 0
  
For i = 0 To Rädchen(UBound(Rädchen))
   erg(UBound(Rädchen)) = i
   If IsArray(f) Then Call RecLoop(f, erg)
   If UBound(Rädchen) = 0 Then Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = "'" & Join(erg, "-")
Next i
End Sub
Rädchen = Array(7, 13, 9) gibt die Anzahl Rädchen und die Einstellungen vor (jeweils 0 bis zur angegebenen Zahl). Bei mehr oder weniger Rädchen einfach Zahlen ergänzen oder löschen.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
[-] Folgende(r) 1 Nutzer sagt Danke an EarlFred für diesen Beitrag:
  • RPP63
Antworten Top
#13
Sehr schön!
Ernst gemeinte Frage:
Ist das eine "echte" Rekursion?
Ich stehe damit ein wenig auf Kriegsfuß.
(was man heute sicherlich gar nicht schreiben darf, ähnlich dem irgendwann als "unschicklich" geächtetem "Monitor im Kreuzfeuer" [Du erinnerst Dich, wurde als Kreuzverhör umbenannt?])
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#14
(23.11.2023, 18:20)RPP63 schrieb: Ist das eine "echte" Rekursion?
Ja, die Sub ruft sich selbst (mit jeweils geänderten Argumenten) auf. Nimm mal eine kleine Menge Kombinationen und spiel das mal im Einzelschritt durch. Behalte vor allem f, i und erg im Auge.

Das geht bestimmt auch eleganter, war ein Schnellschuss.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#15
Vielen Dank EarlFred !

So hatte ich es mir vorgestellt.


Code:
'Vorgabe: Anzahl "Rädchen", jeweils von 0 bis Obergrenze

'z. B. Rad 1 von 0 bis 7, Rad 2 von 0 bis 13, Rad 3 von 0 bis  9

Rädchen = Array(7, 13, 9)


Kann man den Code auch so gestalten, dass ich angeben kann, wo meine Zahlen für die jeweiligen Rädchen beginnen?

Areray(7, 13, 9) begann ja bei 0-7, 0-13 & 0-9). Kann man für das 1. Rädchen auch bei 1 beginnen (1-5) und das 2. Rädchen (3-6) und eine Eingabe für das 3. Rädchen z.B. von 4-8 machen? Also nicht, dass immer bei der Zahl 0 begonnen wird?

Vielen Dank
Antworten Top
#16
Ich mag Menschen, die sich mit Lösungen beschäftigen, sie zuerst mal zu verstehen versuchen und dann selbst anpassen können. 

Wo müsste man das denn anpassen? Welche Varianten fallen dir ein?
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#17
Smile 
Dank Dir!

Habs mir nochmal genauer angeschaut. i=1 Blush

Schönen Abend noch!
Antworten Top
#18
Durch i=1 beginnen ja alle 3 Zahlen bei ist bis zur entsprechenden Array-Zahl. Kann ich aber auch 3 veschiedene Beginnzahlen angeben?
Antworten Top
#19
(23.11.2023, 21:47)Redgeier schrieb: Durch i=1 beginnen ja alle 3 Zahlen bei ist bis zur entsprechenden Array-Zahl. Kann ich aber auch 3 veschiedene Beginnzahlen angeben?
Du hast doch jetzt alles gelernt, was du zur Umsetzung brauchst, so dass die Frage „ob“ unzulässig ist. Selbstverständlich ist es möglich und du kannst es auch.

- du weißt, wie man die Obergrenze der Werte definiert.
- du kannst analog also auch die Untergrenze definieren.
- du weißt, wo die Untergrenze verwendet wird.

Alles da an Wissen. Einfach anwenden, das ist kein Hexenwerk.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#20
Ich würde verwenden:
1:  0-7
2:  0-13
3:  0-9


Code:
Sub M_snb()
   msgbox = 8 * 14 * 10
 
  Cells(1).Resize(1120) = [index(int((row(1:1120)-1)/(14*10)) & "_" & mod(int((row(1:1120)-1)/10),14) & "_" & mod(row(1:1120)-1,10),)]
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste