プログラミング 超初心者の PYTHON学習 .5



スポンサーリンク

目次

今迄の学習の応用をしてみましょう

応用問題 -色の組み合わせ‐

forformatinput を使います

色が 10色 あります。その中から4色だけを選んでグループを作ると、
何通りの組み合わせが出来るでしょうか?

「赤、青、黄、緑、紫、黒、白、桃、灰、茶」 の10色の中から4色選ぶと
    
「赤、青、黄、緑」
「赤、青、黄、
「赤、青、黄、
    ・
    ・
「白、桃、灰、茶」というように何通りか組み合わせが出来ますね。

for でコードを書いて inputformat色数組数を指定しましょう。

色数 10
組数 4
組み合わせは「210」通りです

と、表示されるようにしてください。

しかし、PYTHON 以前に計算方法が解らなければ、コードなんて書けません。

組み合わせの計算方法

色が 10色 あります。その中から4色だけを選んでグループを作ると、
何通りの組み合わせが出来るでしょうか?

まず、4色のグループなので
1×2×3×4 です。

10色の中から4色なので
10×9×8×7 というように 10 から 4つ カウントダウンしていきます。

10×9×8×71×2×3×4 で割ると答えがでます。
10×9×8×7 / 1×2×3×4 = 210

解答例

colors = int(input("色数"))
group = int(input("組数"))

c=1
for i in range(group):
    c = c*colors
    colors = colors-1

g=1
for i in range(1,group+1):
    g = g*i

combi = c/g
combi = int(combi)
print(f"組み合わせは「{combi}」通りです")
色数 10
組数 4
組み合わせは「210」通りです
色数 6
組数 3
組み合わせは「20」通りです

補足説明
for i in range(group):  で(group”組数”)の数だけループさせる事が出来ます。

c = c*colors     で色数を掛けていきます。”c=c×10
colors = colors-1   でループする毎に色数を1づつ減らします。”colors = 10-1″

for i in range(1,group+1): で(group”組数”)は 4 なのですが、
            range() の中に入れてしまうと (0,1,2,3) になっています。
      (1,group+1) の+1で(0,1,2,3,4)にして,(0,1,2,3,4)から始めます。

combi = int(combi) は、割り算 ”combi = c/g” を使うと float(少数) になり
          ”組み合わせは「210.0」通りです”
          と表示されて 見にくいので int (整数)に直します。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね (´艸`*)
  • URLをコピーしました!
  • URLをコピーしました!

コメント等、お気軽にどうぞ ( ̄▽ ̄)

コメントする

目次