• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:グループ分けのアルゴリズム)

グループ分けのアルゴリズム

このQ&Aのポイント
  • 重複しない複数の数字を、2つのグループに分けるアルゴリズムを教えてください。
  • 数字の配列を渡すと、2つのグループに分ける組み合わせを返すプログラムを作りたいです。
  • 例えば、数字[1, 2, 3]の場合は[1 | 2, 3]、[2 | 1, 3]、[3 | 1, 2]の3つのグループに分けられます。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8467/18129)
回答No.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

kokukuma
質問者

お礼

ありがとうございます!。 なんとかできました。