• 締切済み

エクセルを使って順位の期待値を出したいです。

ABCに123を当てはめるとAから123、132、213、231、312、321で平均Aから2、2、2です。 A<Bという条件を付けるとAから123、132、231で平均Aから(1、33)、(2、67)、2です。 さらにA<Cという条件を付けると123、132で平均Aから1、(2、5)、(2、5)です。 さらにB<Cという条件を付けると123だけとなり平均はAから1、2、3です。 このように大小の条件を付けて成り立つ組み合わせを絞り込み、平均だけを出したいのです。エクセルを使って条件を入れるだけで簡単に平均だけを出したいのですが何か方法はないでしょうか?今回は説明のためにABCだけでしたが実際はAからPに1から16を当てはめたいです。ある大会で順位の期待値を出すために使用しようと思っています。

みんなの回答

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.3

すみません。#1の考え方は間違っていたようです。 pとqは文字ごとに求めるので、Aの平均を出したい場合は、Aと関係のない条件は考える必要はないと思っていたのですが、Aと関係のない条件も影響してきますね。 #1の回答は無視してください。

全文を見る
すると、全ての回答が全文表示されます。
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

#1です。訂正です。最後の方の不等号が逆になっていました。 正しくは、 条件がA<BとA<Cなら、p=0,q=2なので 条件がA<BとA>Cなら、p=1,q=1なので 条件がA>BとA>Cなら、p=2,q=0なので

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

16!≒2.09×10^13 なので、まともに数えるのは現実的ではないでしょう。 文字の個数をnとします。 1つの文字Aだけに注目し、条件から、Aより前の個数p、Aより後の個数qを数えます。 例えば、 条件がA<Bだけなら、p=0、q=1 条件がA<BとA<Cなら、p=0、q=2 条件がA<BとA>Cなら、p=1、q=1 というように。 そうすると、条件に現れる文字(p+q+1)個だけの並びを考えると、Aの位置はp+1番目になります。 残りの(n-(p+q+1))個を、それらの並びの間に入れると、 Aの前に0個入れた場合、1個入れた場合、2個入れた場合と分けて考えると、 Aの位置の平均は、 Σ[k=0・・・n-p-q-1]{(p+k+1) * (p+k)Ck * (n-p-k-1)C(n-p-q-k-1)} / nC(n-p-q-1) あとは、p,qを数える仕組みと上記の平均の計算式をエクセルに組み込んでください。 ABCの場合で確認すると、 平均=Σ[k=0・・・2-p-q]{(p+k+1) * (p+k)Ck * (2-p-k)C(2-p-q-k)} / 3C(2-p-q) 条件が何もなければ、p=q=0なのでAの平均は、 Σ[k=0・・・2](k+1) / 3C2 = 2 条件がA<Bだけなら、p=0,q=1なのでAの平均は、 Σ[k=0・・・1]{(k+1) * (2-k)C(1-k)} / 3C1 = 4/3 条件がA>Bだけなら、p=1,q=0なのでAの平均は、 Σ[k=0・・・1]{(k+2) * (1+k)Ck} / 3C1 = 8/3 条件がA>BとA>Cなら、p=0,q=2なのでAの平均は、 Σ[k=0・・・0](k+1) / 3C0 = 1 条件がA>BとA<Cなら、p=1,q=1なのでAの平均は、 Σ[k=0・・・0](k+2) / 3C0 = 2 条件がA<BとA<Cなら、p=2,q=0なのでAの平均は、 Σ[k=0・・・0](k+3) / 3C0 = 3

gashigeru
質問者

お礼

難しい計算式作ってくれてありがとうございます。計算式の意味は何とか理解する事が出来ました。pには確実に上回っているチーム数、qには確実に下回っているチーム数を入れればいいわけなんですね。あとはA<BでさらにB<Cになったりした時の対処法ですね。このようにAと関係のない試合でpやqが増えたりする場合があるんです。パソコンに入力する時間がかかると困ってしまいます。実はカルタ大会で使用しようと思っており、一斉に始まって一斉に終わります。入力に時間がかかると参加者をそれだけ待たせる事になってしまいます。でも計算式ありがとうございます。きっと誰かこの対処法もひらめくのではと期待しています。このサイトにも感謝。

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

関連するQ&A

  • VBAで順位の期待値を出したい。

    VBAを使おうと思いましたがさっぱりわからず困っています。やりたい事はA1からP1の16セルに順位の期待値を出す事です。方法はこうです。まず1から16までをA1からP1までに重複しないようにあてはめ、全組み合わせの平均を出します。そうすると(8、5)、(8、5)、・・・となるはずです。次に大小の条件を付けます。例えばAがBに勝ったとしてA1<B1という条件を付けます。これだけで組み合わせが半減し、平均がA1から(5、67)、(11、33)、(8、5)、(8、5)、・・・となるはずです。さらにどんどん大小の条件を付け、組み合わせを絞り込みます。それで平均を出します。大小条件は簡単に入力出来た方がいいです。これらを可能にするにはどうしたら良いでしょうか?

  • 条件を付けて組み合わせを絞って平均を出す関数は?

    ABCに123を当てはめるとAから123、132、213、231、312、321で平均Aから2、2、2です。 A<Bという条件を付けるとAから123、132、231で平均Aから(1、33)、(2、67)、2です。 さらにA<Cという条件を付けると123、132で平均Aから1、(2、5)、(2、5)です。 さらにB<Cという条件を付けると123だけとなり平均はAから1、2、3です。 このように大小の条件を付けて成り立つ組み合わせを絞り込み、平均だけを出したいのですがこんな事が可能なエクセル関数はないでしょうか?今回は説明のためにABCだけでしたが実際はAからPに1から16を当てはめたいです。

  • 順位の期待値を求める方程式を探しています。

    ここに1位から16位までの16チームがあり、上位のチームは下位のチームに確実に勝てるものとします。ランダムに選び出された2チームで強い方の順位の期待値は17×1/3位、弱い方は17×2/3位です。この方法2回によって選ばれた強い方と強い方の2チームのうち強い方の順位の期待値は17×1/5位、弱い方は17×7/15位です。このような順位の期待値を求める方程式を探しています。Excelを使って反復計算をONにしてA1からP1に順位の期待値が出るようにしたいです。A1に=(B1からP1を使った式)、B1に=(A1とC1からP1を使った式)という感じでP1まで入力します。A1がB1に勝った場合、C1がD1に負けた場合など合計32の結果を入力します。こんな事が可能な方程式は存在するでしょうか?

  • エクセルを使って位置の平均を効率良く出したいです。

    0から1に無限に人が均等に分布しているものとし、無限人中1位が限りなく1に近付き、無限人中ビリが限りなく0に近付くものとします。無限人の平均は1/2、ランダムに選ばれた2人で大きい方の平均は2/3、小さい方は1/3です。2度大きい方を選び、その選ばれた2人のうち大きい方は4/5、小さい方は8/15です。このような平均をエクセルを使って出したいのですが何か方法はないでしょうか?計算式が必要になるかと思います。無限人中16人を選び出しA1からP1に平均が出るようにしたいです。A1の入れ方と大小の条件の入れ方お願いします。大小の条件とはA1>B1、B1>C1、D1>C1などです。ちなみにこの場合A1から11/15、7/15、1/5、3/5になるかと思います。計算式はA1からP1を使った方程式になるかもしれません。

  • Excel IF関数 順位

    エクセルで B1に今回の順位 C1に前回の順位 を入力し、A1に↑,↓,←,NEW と表示されるようにしたいのですが、上手くいきません(>_<) このように入力しました =IF(C1=不参加,"NEW",IF(C1=圏外,"↑",IF(B1=C1,"←",IF(B1<C1,"↑",IF(B1>C1,"↓",)))))

  • エクセルでの順位付け

    エクセルでの順位付けについて教えて下さい。 下記のような順位付けをしたいのですがどのような操作をしたらよいでしょうか。 A 30    1 D 50 B 10  → 2 A 30 C 30    2 C 30 D 50    4 B 10 (得点の多い方から1,2,3・・とし、同点の場合は同順位として次の順位を空位にする)

  • エクセルで順位をつける関数教えてください

    エクセルで4つのデータの順位をつける方法(関数)を教えてくだい。 0~+域が上位で、-域は0に近いほうが上位にしたい。 例:データ             →  順位がこうなる  A    B    C    D    A   B  C  D -36  -26  -16   6     4  3  2  1 -16   0    6   16     4  3  2  1

  • Excelで順位をつけたい

     お世話になります。よろしくお願いいたします。    エクセルでの順位の付け方です。  例えば、  国語、数学の2教科のテストの結果で順位をつけるとします。     列A  列B   列C   列D 行1      国語   数学  合計点 行2  A君  40    60   100 行3  B君  50    50   100 行4  C君  60    40   100  上記のような結果の時に普通に「RANK」を使うと、3人全員が「一位」になりますが、  合計点が同じ場合は、国語の点数が良い者から、「一位・二位・三位」になるようにしたいのです。  したがって、C君が「一位」・B君が「二位」・A君が「三位」になるようにするには、 どのようにすればよろしいですか?お教えください。

  • エクセル 順位表

    エクセル 順位表 いつもお世話になります。 売上実績表の中に、順位表を追加したいのですが、実績表から抽出すると、同一の実績の営業所は、すべて同じ営業所になってしまい困っています。 A    B    C   D    E   F 営コード 実績      順位  営コード  実績 2     200   1   5  500 3   400   2   3  400 4   300   3   4  300 5   500   4   4  300 6   300   5   4  300 7    300 順位3、4、5位は、それぞれ4,6,7の営業所コードを表示したいのですが、どうしたらいいでしょうか。 F列には、F2=LARGE(B:B,ROW(A1)) E列には、E2=INDEX(A:A,MATCH(F2,B:B,0)) 営業所数は100程あり、ピボットテーブルを使用せずに作成したいです。 色々条件がついてますが、よろしくお願い致します。

  • エクセルで順位表

    エクセルをつかった成績の順位表の関数についておしえてください   数学(点)   英語(点)   合計(点)   順位 Aさん   1      2      3       6 Bさん   2      4      6       4 Cさん   5      5       10      2 Dさん   6       7      13      1 Eさん   4      0      4      5 Fさん   6      4      10      2 ひとまず上記のような表をつくったのですが、さらに下記のような順位表をつくりたいのです。 1位 Dさん 2位 Cさん    Fさん 4位 Bさん 5位 Eさん 6位 Aさん ここで問題なのが同じ点数がある場合が多いので、どう表示させるべきかもよくわかりません。よろしくおねがいします