掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字を並び替えるには? (ID:124157)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
実はこの手の順列の列挙型のアルゴリズムには、 再帰を使った有名なアルゴリズムがあります。 大概はCで書かれていますが、ザザットVBに 直して見ました。 フォームにSortedプロパティをONにしたListBox とコマンドボタンを1つ置きます。 取りあえず文字数は5としてあります。 再帰を使っている関係上7文字位が限度かも知れません。 ListBoxには文字列の並べる順番が表示されます。 Splitで切り分けて、文字の番号順に並べます。 重複文字がある場合はどうしたら良いかわかりますよね。 Option Explicit Const N = 5 '文字列の数 Dim p(N) As Integer Private Sub Command1_Click() Dim pos As Integer For pos = 0 To N - 1 p(pos) = 0 Next For pos = 0 To N - 1 ChangeC pos, 1 Next End Sub Public Sub AddList() Dim i As Integer Dim s As String s = CStr(p(0)) For i = 1 To N - 1 s = s & "," & CStr(p(i)) Next List1.AddItem s End Sub Private Sub ChangeC(ByVal pos As Integer, ByVal k As Integer) Dim j As Integer p(pos) = k If N = k Then AddList Else For j = 0 To N - 1 If p(j) = 0 Then ChangeC j, k + 1 End If Next End If p(pos) = 0 End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.