質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

562閲覧

順列を分類し、その数を示すには

okahijiki

総合スコア404

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/06/15 02:11

以下の順列を、要素の数で分類し、その分類した数を示したいと思っています。
どのような方法があるのか、ご教示くださいませ。よろしくお願いいたします。

(0,0,0)=> 0が3個 =>1つ
(0,0,1),(0,1,0),(1,0,0)=> 0が2個、1が1個 =>3つ
(0,1,1),(1,0,1),(1,1,0)=> 0が1個、1が2個 =>3つ
(1,1,1)=> 1が3個 =>1つ

python

1import itertools 2l=[0,1] 3P=list(itertools.product(l, l, l)) 4print(P) 5 6#[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]

◎方法について、考えたこと

タプルのそれぞれの総和が0、1、2、3に分類し、その数を示せばよいのでは。

python

1#まず総和0について、当てずっぽうに、やってみましたが...やはりエラー... 2R = [i for i in P if sum(P)==0] 3 4#TypeError: unsupported operand type(s) for +: 'int' and 'tuple'

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okahijiki

2021/06/15 04:01

P=list(itertools.product(l, l, l))のIを増やしていき、正規分布になるのか確かめるためです。 方法は、タプルの合計でいけると推測しています。それをプログラミングで、どうやるのか試行錯誤しております。よろしくお願いいたしますー。
guest

回答1

0

自己解決

import itertools
l=[0,1]
P=list(itertools.product(l, l, l))
print(P)

[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]

S=[]
for i in P:
S.append(sum(i))

print('0が3個の場合...' ,S.count(0))
print('0が2個、1が1個の場合...',S.count(1))
print('0が2個、1が1個の場合...',S.count(2))
print('1が3個の場合...',S.count(3))

0が3個の場合... 1
0が2個、1が1個の場合... 3
0が2個、1が1個の場合... 3
1が3個の場合... 1

投稿2021/06/15 05:01

okahijiki

総合スコア404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問