n個の青色のコインとm個の赤いコインのすべての手配をプログラムで表示する方法を見つけようとしています。私は答えがn + m C nだと知っていますが、私はコンピュータにすべてn + m C nの配置を表示します。明らかにするために、nとmが両方とも2の場合、コンピュータが出力する出力は["bbrr", "brbr", "brrb", "rbbr", "rbrb", "rrbb"]
です。また、コードは可能であればPythonでなければなりません。もしあなたがPythonを持っていなければ、私は多くの言語を知っているので、まだ動作します。私はitertoolsを使ってみましたが、それぞれの赤いコインが異なるものとして数えられているので動作しません。私はPythonでの区別性について多くのことを調べてみましたが、何も見つかりませんでした。ヘルプは非常に高く評価されます。組合せ表示:すべての手配を表示
-4
A
答えて
1
itertools
パッケージには、あなたが求めているものがあります。しかし、それは別々のエンティティであることを同一の項目を検討していきますので、私たちは重複
from itertools import permutations
sorted(set(x for x in permutations('rrbb', 4)))
[('b', 'b', 'r', 'r'),
('b', 'r', 'b', 'r'),
('b', 'r', 'r', 'b'),
('r', 'b', 'b', 'r'),
('r', 'b', 'r', 'b'),
('r', 'r', 'b', 'b')]
-1
は、この目的のため
F(0、0、currentStr)= currentStrを再帰関数を作成することができ
F(N、M、currentStr)= F(N-1、M、currentStr + "b")とf(n、m-1、currentStr + "r")
+0
mとnが負になり、これは決して終了しません。 n = 0とm = 0の2つの基本ケースを考慮する必要があります。 –
1
をクリーンアップするためにset()
を使用することができます。ここはHaskellでの基本的な再帰的なソリューションです。
arrangements :: (Integral n, Integral m) => n -> m -> [String]
arrangements n 0 = [stimes n "b"]
arrangements 0 m = [stimes m "r"]
arrangements n m = (('b' :) <$> arrangements (n - 1) m)
<> (('r' :) <$> arrangements n (m - 1))
λ> arrangements 2 2
["bbrr","brbr","brrb","rbbr","rbrb","rrbb"]
λ> arrangements 2 3
["bbrrr","brbrr","brrbr","brrrb","rbbrr","rbrbr","rbrrb","rrbbr","rrbrb","rrrbb"]
関連する問題
- 1. itertools.combinations()はすべての組み合わせを表示していません
- 2. 文字列のすべての組み合わせを表示する
- 3. 配列を組み合わせて1つのテーブルに表示する方法
- 4. 配列の値を互いに組み合わせて表示したい
- 5. anglejs内の表示/非表示セクションをすべて表示/非表示
- 6. サムネイルを表示に合わせて表示するには
- 7. 出力の組み合わせを表示するMySQLクエリ
- 8. 組織のすべてのGitHub Reposのマイルストーンを表示
- 9. NSWindowsをすべて表示
- 10. すべてを表示div
- 11. すべての非表示/非表示のウィンドウを終了
- 12. xcode内のすべてのコメントを非表示/非表示
- 13. 構文強調表示diffとxxxを組み合わせる
- 14. 表示範囲インラインブロックとインラインの組み合わせ
- 15. jqGrid編集/表示フォームの組み合わせ
- 16. 2つのコンポーネントの要素を組み合わせて表示する
- 17. datacontext wpfからすべてのデータグリッド列を表示/非表示
- 18. ストア手順を非表示
- 19. 複数のjsonを組み合わせてAngular UIグリッドに表示する
- 20. Chart.js線の近くにラベルを組み合わせて表示する
- 21. 組織モードでのカスタムアジェンダの表示:日付とタグの組み合わせ
- 22. MySQLは違法な照合の組み合わせを表示します
- 23. 行内のすべての組み合わせを一覧表示するVBAマクロ
- 24. 表示または非表示のチェックボックスすべての位置
- 25. リストをPythonで分割して組み合わせを表示する
- 26. ピクチャを並べて表示
- 27. 配列の値のすべての桁を表示する
- 28. 複合WPF:ビューの表示/非表示?
- 29. *表示からすべての列が表示されない
- 30. 画像を複数組み合わせてCV2.Imshow()で表示するOpenCV Python
これは基本的な研究や試みが欠けているのとは別に、これを探してみるとPythonの標準ライブラリにあるものです2〜3分。 –
あなたがこれまで試みたことを投稿してください。 – James
これは妥当な質問です。標準ライブラリオプション* itertools.combinations *は、入力が重複した値を持ち、ライブラリ関数が異なる入力を想定しているため、ここでは役に立ちません。 –