vb .net Permutation der Zeichenfolge. Permutation oder Kombination?
Ich habe eine Saite wie dieseC - F - A - M
. Ich möchte eine Kombination daraus mit Bedingung erstellen:
Es ist keine gleiche Kombination erlaubt, auch die Reihenfolge ist unterschiedlich. zum Beispiel
FC - M
CF - M
Wenn das String-Array> = 3 Elemente enthält, wird eine 2 & 3-Elementmenge generiert. Wenn 2 Elemente vorhanden sind, wird nur eine 2-Elementmenge generiert
Unten ist mein Code. Mein Code erzeugt das Ergebnis wie der rechte Teil des Bildes
Meine Frage ist, welche Methode soll ich verwenden? ist es Permutation, Kombination oder andere Dinge? und in Pseudocode, wie wäre mein Fall?
Hier ist mein Code
Public Class permute
Dim ItemUsed() As Boolean
Dim pno As Long, pString As String
Dim inChars() As Char = {"c", "f", "a", "m"}
Private Sub permute_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Sub Permute(ByVal K As Long)
ReDim ItemUsed(K)
pno = 0
Dim i As Integer
For i = 2 To K
Permutate(i, 1)
tb.Text = K
Next
End Sub
Private Sub Permutate(ByVal K As Long, ByVal pLevel As Long)
Dim i As Long, Perm As String
Perm = pString
For i = 0 To K - 1
If Not ItemUsed(i) Then
If pLevel = 1 Then
pString = inChars(i)
Else
pString += inChars(i)
End If
If pLevel = K Then
pno = pno + 1
Results.Text += _
pno & " " & " = " & " " & pString & vbCrLf
Exit Sub
End If
ItemUsed(i) = True
Permutate(K, pLevel + 1)
ItemUsed(i) = False
pString = Perm
End If
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Permute(tb.Text)
End Sub
Private Sub tb_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tb.TextChanged
If tb.Text = "" Then
Results.Text = ""
Else
Permute(tb.Text)
End If
End Sub
End Class
Hier ist der Screenshot mit den Anforderungen
und hier ist der Screenshot des Programms