- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:グループ分けのアルゴリズム)
グループ分けのアルゴリズム
このQ&Aのポイント
- 重複しない複数の数字を、2つのグループに分けるアルゴリズムを教えてください。
- 数字の配列を渡すと、2つのグループに分ける組み合わせを返すプログラムを作りたいです。
- 例えば、数字[1, 2, 3]の場合は[1 | 2, 3]、[2 | 1, 3]、[3 | 1, 2]の3つのグループに分けられます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
'エクセルVBAで書いてみた。 '2つのグループのうち、1番目の数字が含まれるほうだけA列に書き出す。 '要するに組み合わせnCkを計算しているに過ぎない。 Dim j As Long 'j 書き出し行 Dim inary() Sub cbb() 'n 数字の個数 'inary 数字 j = 0 n = 4 ReDim inary(n) For i = 1 To n inary(i) = i Next i ' For k = 0 To n - 2 Call cb(n - 1, k, 2, "") Next k End Sub Sub cb(n, k, i, ans) If k = 0 Then Range("a1").Offset(j) = inary(1) & ans j = j + 1 Exit Sub End If If n = 0 Then Exit Sub End If Call cb(n - 1, k - 1, i + 1, ans & " " & inary(i)) Call cb(n - 1, k, i + 1, ans) End Sub
お礼
ありがとうございます!。 なんとかできました。