• ベストアンサー

物を選ぶパターン数について

パターンを数える方法がわかりません 10個の石の中から10個の石を選ぶ(順不同)のは1パターンです 11個の石の中から10個の石を選ぶのは11パターンあります そこまではわかるのですが 12個の石の中から10個の石を選ぶのは何パターンあるのかがわかりません また、m個の中からn個の石を選ぶパターン数を求める方式があるのでしょうか? 教えてください よろしくお願いします

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

  • ベストアンサー
noname#24855
noname#24855
回答No.3

高校で習う公式があります、C(コンビネーション)を使います。 m個の中からn個の石を選ぶパターンは、 mCn で m ! / n ! x (m-n) ! となります。 12個の石の中から10個の石を選ぶのは、  12! / 10! x 2!  なので 12x11x10.....2x1 / 10x9.....2x1 X 2x1 となります。 なので答えは66通りです。 ちなみに12個の石の中から9個の石を選ぶときは、  12! / 9! x 3!   12x11x10.....2x1 / 9x8.....2x1 X 3x2x1 となり, 220通りです。 詳しい公式はWikipediaがありましたので乗せておきます。

参考URL:
http://ja.wikipedia.org/wiki/%E7%B5%84%E5%90%88%E3%81%9B
wakakusaan
質問者

お礼

ご返答ありがとうございます wikipediaにも解説があるのですね 拝見しました。このような問題は数合わせというジャンルなのですね 参考URL共々ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

10個から10個  10C10=(10*9*8*7*6*5*4*3*2*1)/(10*9*8*7*6*5*4*3*2*1)     =1  で1通りですよね 11個から10個  11C10=(11*10*9*8*7*6*5*4*3*2)/(10*9*8*7*6*5*4*3*2*1)     =11  で11通り 12個から10個  12C10=(12*11*10*9*8*7*6*5*4*3)/(10*9*8*7*6*5*4*3*2*1)     =(12*11)/(2*1)     =66  で66通り m個からn個  mCn になります また逆に選ばないほうで考えても同じ結果になります 10個から10個 10C0=10P0/0! (10P0=0!=1) 11個から10個 11C1=11/1 12個から10個 12C2=12*11/2*1 m個からn個  mCm-n 幾分10数年前の記憶なのでC、P、!の使い方忘れてます 間違ってるかもです(滝汗) 

wakakusaan
質問者

お礼

ご返答ありがとうございます 単純明快で理解できました コンビネーションは私も聞いたことがありましたが 詳しくは知りませんでした。このように使うのですね これで問題が解けました ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。
  • isoyujin
  • ベストアンサー率21% (145/662)
回答No.1

公式があったと思いますが、逆に、選ばれない方の組み合わせを考えれば簡単だと思います。二個残るのだから、12個から2個選ぶ組み合わせですね。結果は同じでしょうが。

wakakusaan
質問者

お礼

ご返答ありがとうございます 自分も残りから責めてみようと思ったのですが 数が多くなると複雑で…

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 場合の数の一般式

     次のような「場合の数」を求める一般式を教えてください。  1からnまでの正整数の中からm個を取り出し、取り出した数の中で連続しているものを1つのグループとします。(1個でも1つのグループとしてカウントします)。グループの数がk個となる、取り出し方は何通りあるか。n、m、kを用いた一般式を教えてください。

  • vba  組み合わせパターン表示

    1,2,3,--,n-1,nからm個とる組み合わせのパターンを セル(1,1)から(nCm、nCm)に表示させる処理をVBAで記述 したいのですが、どうすればいいのでしょうか。 よろしくお願いします。

  • 良い考え方を知りたいです。(パターン照合について)

    良い考え方を知りたいです。  良い…処理が早い。  考え方…アルゴリズム(と言うのでしょうか) 与えられた部品のリストをマスターと照合し、完成させるタイプ(パターン)を判別したいと考えています。状況の例としては、 ○与えられる部品リスト   A,C,E,G,I,K,L,N,P… (アルファベットには8文字程度の文字列が入ります) ○マスター保持している例  パターン1:A,B,D,E,G,J,K…  パターン2:B,D,E,G,J,M…  パターン3:J,S,T,V,W,X,Z…  パターン4:A,B,D,Y,Z… パターン5:A,C,E,G,I,K,L,N,P…  (各タイプに保持されているマスタデータは順不同、且つ不特定数です) こんな感じで、データベース(MS AccessやSQLサーバー等)に保持されている各タイプと照合し、 与えられた部品リストがどのタイプ(パターン)に合致するか(一番近いか)を 判別するプログラムを作成したいのですが、 どんな考え方が適しているか、ご教示頂けないでしょうか? 照合するパターンはおよそ200弱、リストで渡される部品数は50前後です。 プログラミング自体は素人ですが、 ・適当なアルゴリズム ・サンプルソース(言語は何でも結構です) ・参考資料の探し方、検索場所 いずれかでご回答お願い申し上げます。

  • すごく大きい数を素因数分解する方法について教えてください。

    すごく大きい数を素因数分解する方法について教えてください。 問題:m,nを2以上の整数とする。√2009=m√nのとき、m=(a) n=(b)である この問題の答えがa=49 B=41でした。 解説には√2009=√49×41=7√41と書いてあります。 解き方は、2009が何で割れるか小さい数から順に試すしかないのでしょうか。 なにか早く解く裏ワザなどあったらいいな・・・と思いました。 よろしくお願いします。

  • 文字列の組み合わせ数を調べる方法

    図のような表の中から、文字列の組み合わせ数を調べる方法をご教示ください。 順序を問う組み合わせと順不同な組み合わせの2通りの数を調べたいです。 またこの場合はD列に結合した文字列を入れたほうが処理が簡単になるでしょうか(例:D1「CAB」)。 なおデータ数(行)は増える可能性がありますが、一行の文字数(列)は増えません。 図の場合だと、「PHW」の順序を問う組み合わせ数は「3」、順不同な組み合わせは「4」です。

  • 双子素数予想の類似、算術級数定理の類似

    素数を小さい順にp(1),p(2),,,とします。 {p(m)-p(n)|m>n}、 {p(m)+p(n)|m≦n}、 {p(m)+p(n)|m<n}、 {p(n+1)-p(n)|nは自然数}、 {p(n+1)+p(n)|nは自然数}、 などを考えます。 目的は、素数に関する様々な定理や予想をそれらで言い換えたいのです。 双子素数は無限個ある(双子素数予想) ⇔{p(n+1)-p(n)|nは自然数}において、p(n+1)-p(n)=2となるnは無限個 ♯そうすると疑問に思うのは、 たとえば{p(n+1)-p(n)|nは自然数}のある偶数の元について、それを満たすnが有限個のものは存在するのでしょうか? 初項aと公差dが互いに素であるような等差数列のなかに素数が無限に存在する(算術級数定理) ⇒{p(m)-p(n)|m>n}において、p(m)-p(n)="dの倍数"となる(m,n)は無限個 ♯そうすると疑問に思うのは、 たとえば{p(m)+p(n)|m>n}において、p(m)+p(n)="dの倍数"となる(m,n)は無限個でしょうか? ♯これはd=2であれば明らかに正しそうです。 d=3とかのときはどうなのでしょう? ♯さらに、2つの合成数の差の集合、または、和の集合とかを考えたときに、成り立つ定理、予想される事実はあるのでしょうか? ♯こういった言いかえができる定理とかは他にありますでしょうか?

  • 中学数学の問題です。

    答えはわかっていますが、解き方がわからないものです。 [問題] 図のように、1段目に1個、2段目に3個、3段目には5個・・・という規則に従って、奇数個のご石を順に置いていく。 この時次の各問の答えとして正しいものをア~オの中から1つ選び、記号で答えなさい。 (1)14段目までご石を並べた時、全部で何個のご石を使うか求めなさい。(答え)196個 (2)n段目から25段目のご石の合計が225個である。このとき、nにあてはまる数を求めなさい。(答え)21 原始的に絵を描いていけば、答えは出るのですが、式がわかりません。1列の数だけなら 1+2(n-1)のようなものも思いついたのですが、それ以上はフリーズしてしまいました。 ご解説をよろしくお願いたします。

  • 1~Nの中から、任意にM個の数を返す関数

    PHP初心者です。 PHPのソースを眺めていて、 mt_rand(1、N) とあり、それが、1~Nの中から、任意に一つ選び出す(乱数を発生させる)関数 ということは理解できました。 そこで、1~Nの数から、任意にM個選び出す(乱数を発生させる)関数を考えています。 そんな関数がドンピシャリあれば、話が早いんですが、 あいにく、知りません。。 例えば、N=10、M=3だとすれば、 7、4、9 などの数を得たいと思っています。 (重複はせずに) 何か、いい方法はありませんでしょうか。 ご存知の方、よろしくお願いいたします!

    • 締切済み
    • PHP
  • パターン数及びパターンを求めるには・・・

    はじめまして、こんにちは。 エクセルというか、数学的な質問になるかもしれませんが、困っておりまして お知恵をお借りできればと思い質問させていただきました。 問題が 【A】【B】【C】【D】【E】とあり、 それぞれの項目には0~12の数字が入ります。 A+B+C=12 かつ、A+D+E=12 になる条件の時、 そのパターン数、及びそのパターンを表示(一覧として出したい)するには どうしたらいいでしょうか・・・。 (A~Eにはもちろん同じ数字も入ります。) エクセルで挑戦しましたが、行き詰まってしまいました。 数学的な問題かもしれませんが、何かいい方法があれば・・・。 申し訳ありませんが、どうぞよろしくお願いいたします。

  • データの数を数えるfortran プログラム

    横にm個、縦にn個の実数データが整然と並んでいます。ファイルを開いて読み込むのですが、縦横に何個のデータがあるかプログラムに感知させる方法があるでしょうか。 縦にn個のデータがあることは簡単でした。しかし横にm個あることを感知させるのが難しいです。今は、とにかく全データの個数を調べて、その個数をnで割って求めています。 全データを読む方はは、1個読んで巻き戻し、2個読んで巻き戻し、3個読んで巻き戻し、.... としてデータをこれ以上読めないというところまで読んでその個数が全データということになります。この部分がかなり時間を使います。データを開いてエディタで1行目のカラム数を数えればいいわけですが、プログラム的にはどうなるでしょうか。Cだったら、改行を感知させるという方法があるかもしれません。Fortranだったらどうなるでしょうか。 ※Fotranの専門の会議室がないのかなと思っていますが。