Registriert seit: 22.03.2026
Version(en): Office Home 2024
23.03.2026, 10:16
(Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2026, 10:17 von Weinbaudidi.)
Habe folgende Aufgabe zu lösen:Ein Code-Schloss kann mit den Ziffern 0 bis 9 codiert werden, allerdings darf jede Ziffer im Codewort nur einmal vorkommen.
Frage: Wieviele Codierungen sind möglich? Man muss dazu die vorgegebene Zahl in einzelne Ziffern zerlegen und diese dann auf Gleichheit oder Ungleichheit vergleichen können. Hier komme ich nicht so richtig weiter. Danke für jede Hilfe im Voraus.
Grüsse von Weinbaudidi
Registriert seit: 16.08.2024
Version(en): Office 365
23.03.2026, 10:19
(Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2026, 10:27 von BigJane.)
Hi,
solche Aufgaben haben wir damals mit Fakultät gelöst.
Die Frage ist wie viele Stellen hat das Codeschloss.
Im einfachsten Anwendungsfall mit 10 Stellen, 10 Ziffern wäre es entsprechend 10! bzw. Fakultät(10). Für alles Weitere befasse dich bitte mit dem mathematischen Operator und wie man ihn anwendet.
z.B. könnte bei beispielsweise 4 aus 10 Ziffern der Binomialkoeffizient analog dem Lotto 6 aus 49 berechnet werden. Wikipedia sagt dir wie das geht...siehe "Fakultät (Mathematik)"
VG Jane
Registriert seit: 22.10.2022
Version(en): 2024
23.03.2026, 10:34
(Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2026, 10:34 von redeagle56.)
Hallo,
aus wieviel Ziffern besteht der Code?
Bei 4 Ziffern wäre das Beispiel richtig.
MfG Günter
Kombinationen.xlsx (Größe: 11,54 KB / Downloads: 11)
Win 11, Office 2024
Wenn Thema gelöst, dann bitte kennzeichnen.
Wer aufgibt, hat schon verloren.
Registriert seit: 05.09.2019
Version(en): Office 365
Hallo
Permutation ohne Wiederholung.
=PERMUTATIONEN(10;4)
Falls die Funktion in Excel nicht geht dann so
| Arbeitsblatt mit dem Namen 'Tabelle1' |
| A | B | C |
| 1 | Anzahl mögliche Ziffern | | 10 |
| 2 | Anzahl Stellen | | 4 |
| 3 | | | |
| 4 | | | |
| 5 | Möglichkeiten | | 5040 |
| Zelle | Formel |
| C5 | =FAKULTÄT(C1)/FAKULTÄT(C1-C2) |
zum nachvollziehen:
| Arbeitsblatt mit dem Namen 'Tabelle1' |
| A | B | C | D | E | F | G | H |
| 1 | Anzahl mögliche Ziffern | | 3 | | | 1 | 2 | 3 |
| 2 | Anzahl Stellen | | 2 | | | 1 | 3 | 2 |
| 3 | | | | | | 2 | 1 | 3 |
| 4 | | | | | | 2 | 3 | 1 |
| 5 | Möglichkeiten | | 6 | | | 3 | 1 | 2 |
| 6 | | | | | | 3 | 2 | 1 |
| Zelle | Formel |
| C5 | =FAKULTÄT(C1)/FAKULTÄT(C1-C2) |
LG UweD
Registriert seit: 28.08.2022
Version(en): 365
Hi Günther,
bei der von dir genannten Formel wird die Reihenfolge der Ziffern nicht berücksichtigt. Das ist z.B. bei der Ziehung der Lottozahlen korrekt - aber nicht bei einem Zahlenschloss. Das kannst du sehr leicht Prüfen, indem du beide Werte deiner Tabelle auf 10 setzt. Dann kommt logischerweise 1 raus.
Hier braucht man nicht die Zahl der "Kombinationen" sondern der "Permutationen". In diesem Fall die der Permutationen ohne Wiederholung. Jetzt muss man nur noch wissen, dass Excel der Meinung ist, dass Permutationen "Variationen" heißen.
Gruß,
Helmut
Win11 - Office365 / MacOS - Office365
Registriert seit: 22.09.2024
Version(en): 2010, 2021
Hallo Helmut,
ich denke, in diesem Fall ist es eher eine Variation anstatt einer Permutation ohne Wiederholungen, denn sonst müsste die Anzahl der Stellen gleich die Anzahl der Ziffern sein, also eine Sonderform der Variation. Leider hat der OP nichts darüber ausgesagt.
Knobbi38
Registriert seit: 12.07.2025
Version(en): 2021
(23.03.2026, 10:19)BigJane schrieb: Die Frage ist wie viele Stellen hat das Codeschloss.
Genau.
Nun dennoch haben wir 2 konkrete Vorschläge bis jetzt wie man das ausrechnet, schauen wir mal:
Hier ist die Datei:
Möglichkeiten.xlsx (Größe: 11,29 KB / Downloads: 4)
Ich würde sagen die korrekte Antwort für Scenario A ist 9 und für Scenario B ist 8. Oder habe ich da was falsch verstanden?
Andreas.
Registriert seit: 05.09.2019
Version(en): Office 365
23.03.2026, 14:22
(Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2026, 14:24 von UweD.)
Hallo nochmal
In der Frage steht.
>> allerdings darf jede Ziffer im Codewort nur einmal vorkommen.
Also ist doch in Scenario A
1; 1
2; 2
3; 3
falsch
Edit:
Ebenso in Scenario B: die Mehrfachnennungen
Ohne Wiederholung nicht möglich, da es nur 2 mögliche Zahlen gibt, aber 3 Räder eingestellt werden sollen.
LG UweD
Registriert seit: 22.09.2024
Version(en): 2010, 2021
Hallo Andreas,
da hast du leider etwas falsch verstanden.
Angenommen du hast ein Zahlenschloss mit 4 Rädern mit den Ziffern 0..9 und jede Ziffer darf in der Lösung nur einmal vorkommen, dann gibt es dafür 5040 Lösungen: 10 * 9 * 8 * 7 = 5040 oder als Formel "=Variationen(10;4)"
Bei deinem Problem wäre also die Lösung A = 6 und Variante B wäre ungültig.
Knobbi38
https://de.wikipedia.org/wiki/Variation_(Kombinatorik)
Registriert seit: 05.09.2019
Version(en): Office 365
Hier noch die Auflistung der Möglichkeiten.
Code in ein Modul kopieren
0 bis 9 stehen in Spalte A (können auch Buchstaben sein)
Ausgabe erfolgt in D
Code:
Option Explicit
Sub Permutationen()
Dim arr() As String
Dim Anz As Long, Stellen As Long, Kombi As Integer
Dim i As Long
' Anzahl der belegten Zellen in Spalte A
Anz = WorksheetFunction.CountA(Columns(1))
' Eingabe der Permutationslänge
Stellen = InputBox("Anzahl Stellen", , 3) ' z.B. 3 für ABC
If Stellen > Anz Then
MsgBox "Anzahl Stellen darf nicht größer als die Anzahl der Werte sein!"
Exit Sub
End If
'mögliche Kombinationen
Kombi = WorksheetFunction.Fact(Anz) / WorksheetFunction.Fact(Anz - Stellen)
MsgBox Kombi & " Kombinationen möglich"
'Reset
Columns(4).ClearContents
' Array mit den Werten aus Spalte A füllen
ReDim arr(1 To Anz)
For i = 1 To Anz
arr(i) = Cells(i, 1).Value
Next i
' Alle Permutationen generieren
Call Generate(arr, "'", Stellen) 'Wird als Text ausgegeben
End Sub
Sub Generate(arr() As String, prefix As String, k As Long)
Dim i As Long, j As Long, idx As Long
Dim newArr() As String
Dim n As Long
If k = 0 Then
Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Value = prefix
Exit Sub
End If
n = UBound(arr) - LBound(arr) + 1
For i = LBound(arr) To UBound(arr)
If n = 1 Then
' Letztes Element, einfach anhängen und schreiben
Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Value = prefix & arr(i)
Else
' Array für nächsten Rekursionsschritt bauen
ReDim newArr(1 To n - 1)
idx = 1
For j = LBound(arr) To UBound(arr)
If j <> i Then
newArr(idx) = arr(j)
idx = idx + 1
End If
Next j
' Rekursion
Generate newArr, prefix & arr(i), k - 1
End If
Next i
End Sub
LG UweD