| Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a. |
Diskussion: Formel für Maximale Zahlenkombinationen im Forum Cryptography & Encryption, in der Kategorie Security Area; Anzeige Hallo! Ich suche nun schon einige Tage im web nach einer Lösung meines Problems: Ich habe die Zahlen 1 ...
![]() |
| | #1 (permalink) |
| Registriert seit: 17.04.06 ![]() Likes: 0 | Anzeige Hallo! Ich suche nun schon einige Tage im web nach einer Lösung meines Problems: Ich habe die Zahlen 1 bis 10 (1,2,3,4,5,6,7,8,9,10), nun möchte ich herausfinden wie viele Möglichkeiten es gibt Kombinationen zu bilden bei denen von einer zur nächsten Ziffer die max Differenz 4 nicht überschritten wird z.B.: 1,4,8,10,9,7,6,5,3,2 oder 1,3,6,10,9,7,4,8,5,2 oder 1,3,2,4,6,9,10,8,7,5 oder 1,4,6,8,7,10,9,5,3,2 usw... wichtig ist das wenn man bei der letzten Zahl angekommen ist, wieder von vorn anfangen kann und die max Differenz von 4 nicht überschritten wird z.B.: 1,3,2,4,6,9,10,8,7,5 währe dann 5,1,3,2,4,6,9,10,8,7 Wie müsste dazu die Formel aussehen? Vielen Dank schon mal! powerfisch |
| | |
| | #2 (permalink) |
| Senior Member Registriert seit: 07.01.03 ![]() Likes: 19 | ich versteh dich jetzt nicht ganz aber ich fang einfach mal an ![]() wie lang ist deine zahlenkette ? exakt 10 stellen ? für die erste stelle ist jede zahl von 1-10 möglich(also 10 zahlen): fallunterscheidung: 1.1 für ziffer 5 oder 6 gibt es für die folgestelle 9 möglichkeiten (4 drunter, 4 drüber, exakt die gleiche zahl) 1.2 für ziffer 4 und 7 gibt es 8 nachfolgestelle (3 bzw 4 drunter, 4 bzw 3 drüber, exakt die gleiche zahl) - rest analog 1.3 ziffer 3 und 8: 7 folgemöglichkeiten 1.4 ziffer 2 und 9: 6 folgemöglichkeiten 1.5 ziffer1 und 10: 5 folgemöglichkeiten (das ganze läst sich auch als negativ betrachten - also 10^10 / x, wobei x = nicht mögliche folgekombinationen). so, das war jetzt bruteforcing ![]() /edit: dürfen sich die zahlen widerholen ? kumpel hat mich grade drauf hingewiesen |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | ||
| Themenstarter Registriert seit: 17.04.06 ![]() Likes: 0 | Zitat:
Zitat:
Ich habe hier schon ne Endlosschleife mit vb gabastelt nur leider möchte ich Igendwie Überprüfen ob alle Kombinationen schon gefunden wurden und deshalb hatte ich nach einer Berechnungsmöglichkleit gesucht. #offtopic# Ich bin nun bis Freitag unterwegs also nicht wundern wenn ich hir erst mal nicht mehr Antworte. powerfisch | ||
| | |
| | #4 (permalink) |
| Senior Member Registriert seit: 26.03.06 ![]() Likes: 16 | wenn die Anzahl der Zahlen n ist rechnest du n! (Ziehen ohne Zurücklegen, dh. wenn eine Zahl schon mal dran war, wird sie in der selben Kombination nicht mehr vorkommen). Wenn sich die Zahlen wiederholendürfen, dann n^n (1. Stelle hat z.B. 10 Mgl., die 2. wieder, die 3. wieder 10 usw). mfg Serow |
| | |
| | #5 (permalink) |
| Senior Member Registriert seit: 07.01.03 ![]() Likes: 19 | @serow: das beachtet aber die vorraussetzung mit der maximalen differenz von 4 nicht. das sind simple maximal-kombinationen. wenn man leichet(er) ausrechnen kann, wieviele "illegale" kombinationen es gibt (also wo die differenz >4), dann teilt man 10! durch die anzahl der illegalen kombinationen. @powerfisch sry, ich war wohl gestern echt zu müde, das zu checken. als ich mir das im bett durch den kopf gingen ließ, hab ichs dann schon ein weniger mehr geplant.. ich hab das gestern ein wenig überflogen, aber für den fall, dass sich die zahlen innerhalb einer kette wiederholen dürfen. poste mal bitte deinen vb-code, das wäre sehr nützlich. |
| | |
| | #6 (permalink) |
| Themenstarter Registriert seit: 17.04.06 ![]() Likes: 0 | Ok, hier erst mal der Code der mit die Kombinationen generiert, möchte aber gleich dazu sagen das ich Proggen nicht gelernt habe. Code: schondrin = False
maxsprung = 4
uhngültig:
'###- Hier habe ich die Durchläufe erst einmal begrenzt -###'
If d > 100000 Then GoTo ende
d = d + 1
'###- Festlegen das jede Kombination mit 1 beginnt -###'
ergebnis1 = 1
nochmal:
zufalszahl = Int((10 - 1 + 1) * Rnd + 1)
'###- Überprüfen ob die Zufalszahl bereits in der Kombination enthalten ist -###'
zahlreihe = Split(ergebnis1, ",")
For a = 0 To UBound(zahlreihe)
If Int(zahlreihe(a)) = zufalszahl Then
schondrin = True
Exit For
Else
schondrin = False
End If
Next a
'###- Wenn die Zahl noch nicht enthalten ist der Kombination hinzufügen -###'
If schondrin = False Then
ergebnis1 = ergebnis1 & "," & zufalszahl
End If
'###- Überprüfen ob die Kombination schon alle Zahlen enhält -###'
If UBound(zahlreihe) + 1 >= 10 Then
GoTo weiter
Else
GoTo nochmal
End If
weiter:
'###- Überprüfen ob der Sprung von max. 4 gegeben ist -###'
For b = 0 To UBound(zahlreihe)
If b = UBound(zahlreihe) Then
If Not Abs(zahlreihe(0) - zahlreihe(b)) <= maxsprung Then GoTo uhngültig
Exit For
End If
If Not Abs(zahlreihe(b) - zahlreihe(b + 1)) <= maxsprung Then GoTo uhngültig
Next b
'###- Überprüfen ob die Kombination schon einmal ermittelt wurde -###'
If ergebnis2 Like "*" & ergebnis1 & "*" Then
GoTo uhngültig
Else
If ergebnis2 = "" Then
ergebnis2 = ergebnis2 & ergebnis1
Else
ergebnis2 = ergebnis2 & ";" & ergebnis1
End If
GoTo uhngültig
End If
ende:
loesungen = Split(ergebnis2, ";")
Text6.Text = UBound(loesungen) + 1
Text6.Refresh
For a = 0 To UBound(loesungen)
List1.AddItem loesungen(a)
Next a powerfisch Keiner ne Idee ??? |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Mögliche Zahlenkombinationen | Schnappes | Cryptography & Encryption | 39 | Gestern 23:25 |
| Mathematische Formel in C | Chickiwara | Code Kitchen | 5 | 25.10.07 20:46 |
| E-Mail Maximale Zeichen Länge? | ba2 | Internet Allgemein | 4 | 01.05.06 21:34 |
| xala.de - Pattern Generator - Zahlenkombinationen | l-phoenizier | Cryptography & Encryption | 4 | 12.03.06 21:05 |
| Maximale Kabellänge bei einem RJ-11 Kabel | smitti | Network · LAN, WAN, Firewalls | 5 | 20.08.05 19:49 |