dポイントプレゼントキャンペーン実施中!

確率学の科目で以下の課題を出されました。

-100から+100までの数値がランダムに出力されます。
その出力された数値をコントロールし期待値50%、期待値200%になるロジックを考案せよ。
期待値50%とはマイナス値の総和がプラス値の総和の2倍、期待値200%とはプラス値の総和がマイナス値の総和の2倍になる事である。


多くのロジックをプログラミングして検証しましたが、いずれも期待値は100%前後になり求められた期待値のロジックを作れません。
課題の提出期限が迫り焦っています。
期待値50%、期待値200%になるロジックてどうすれば作れるのか教えて下さい。

質問者からの補足コメント

  • ご回答有難うございます。
    説明不足で済みません。

    期待値100%とは期待値0の事でプラス値の総和とマイナス値の総和が最終的に互角になる事です。
    言いそびれましたが+値が出たら値を2倍にして無理やり期待値200%にさせる様な事は反則です。
    +値、-値を倍する事なくありのままの値で期待値200%、50%に出来るロジックを考案しなければなりません。
    なので求められた期待値のロジックが作れず困ってる所です。

    解りやすく言えばコイントスで表が出れば+10点、裏が出れば-10点で表が出れば2倍の20点にして期待値200%にさせる事は禁止という事です。
    表が出れば+10点、裏が出れば-10点のままコイントスを続ければ総和は0=期待値0=期待値100%にどうやってもなってしまうという事です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2024/04/22 11:00
  • ご回答有難うございます。
    説明不足で済みません。

    期待値100%とは期待値0の事でプラス値の総和とマイナス値の総和が最終的に互角になる事です。
    言いそびれましたが+値が出たら値を2倍にして無理やり期待値200%にさせる様な事は反則です。
    現実的に起こりうる期待値を求められてます。
    +値、-値を倍する事なくありのままの値で期待値200%、50%に出来るロジックを考案しなければなりません。
    なので求められた期待値のロジックが作れず困ってる所です。

    解りやすく言えばコイントスで表が出れば+10点、裏が出れば-10点で表が出れば2倍の20点にして期待値200%にさせる事は禁止という事です。
    表が出れば+10点、裏が出れば-10点のままコイントスを続ければ総和は0=期待値0=期待値100%にどうやってもなってしまうという事です。

    No.2の回答に寄せられた補足コメントです。 補足日時:2024/04/22 11:02
  • ご回答有難うございます。
    説明不足で済みません。

    期待値100%とは期待値0の事でプラス値の総和とマイナス値の総和が最終的に互角になる事です。
    言いそびれましたが+値が出たら値を2倍にして無理やり期待値200%にさせる様な事は反則です。
    現実的に起こりうる期待値を求められてます。
    +値、-値を倍する事なくありのままの値で期待値200%、50%に出来るロジックを考案しなければなりません。
    なので求められた期待値のロジックが作れず困ってる所です。

    解りやすく言えばコイントスで表が出れば+10点、裏が出れば-10点で表が出れば2倍の20点にして期待値200%にさせる事は禁止という事です。
    表が出れば+10点、裏が出れば-10点のままコイントスを続ければ総和は0=期待値0=期待値100%にどうやってもなってしまうという事です。

    No.3の回答に寄せられた補足コメントです。 補足日時:2024/04/22 11:02
  • ご回答有難うございます。
    説明不足で済みません。

    期待値100%とは期待値0の事でプラス値の総和とマイナス値の総和が最終的に互角になる事です。
    言いそびれましたが+値が出たら値を2倍にして無理やり期待値200%にさせる様な事は反則です。
    現実的に起こりうる期待値を求められてます。
    +値、-値を倍する事なくありのままの値で期待値200%、50%に出来るロジックを考案しなければなりません。
    なので求められた期待値のロジックが作れず困ってる所です。

    解りやすく言えばコイントスで表が出れば+10点、裏が出れば-10点で表が出れば2倍の20点にして期待値200%にさせる事は禁止という事です。
    表が出れば+10点、裏が出れば-10点のままコイントスを続ければ総和は0=期待値0=期待値100%にどうやってもなってしまうという事です。

    No.4の回答に寄せられた補足コメントです。 補足日時:2024/04/22 11:02
  • ご回答有難うございます。
    説明不足で済みません。

    >正値の総和が負値の総和の2倍と言っていますが、負値を2倍しても負値にしかならないから、無理だと思うのですが、-2倍ということで宜しいですか?
    そうです。

    期待値100%とは期待値0の事でプラス値の総和とマイナス値の総和が最終的に互角になる事です。
    言いそびれましたが+値が出たら値を2倍にして無理やり期待値200%にさせる様な事は反則です。
    現実的に起こりうる期待値を求められてます。
    +値、-値を倍する事なくありのままの値で期待値200%、50%に出来るロジックを考案しなければなりません。
    なので求められた期待値のロジックが作れず困ってる所です。

    No.5の回答に寄せられた補足コメントです。 補足日時:2024/04/22 11:06
  • ご回答有難うございます。
    説明不足で済みません。

    期待値100%とは期待値0の事でプラス値の総和とマイナス値の総和が最終的に互角になる事です。
    言いそびれましたが+値が出たら値を2倍にして無理やり期待値200%にさせる様な事は反則です。
    現実的に起こりうる期待値を求められてます。
    +値、-値を倍する事なくありのままの値で期待値200%、50%に出来るロジックを考案しなければなりません。
    なので求められた期待値のロジックが作れず困ってる所です。

    解りやすく言えばコイントスで表が出れば+10点、裏が出れば-10点で表が出れば2倍の20点にして期待値200%にさせる事は禁止という事です。
    表が出れば+10点、裏が出れば-10点のままコイントスを続ければ総和は0=期待値0=期待値100%にどうやってもなってしまうという事です。

    No.6の回答に寄せられた補足コメントです。 補足日時:2024/04/22 11:07
  • ご回答有難うございます。

    前の6件の回答の内容が数学的に理解が難しく同じ補足の回答をせざるを得ませんでした。

    確かに教授は実現値を求めてます。
    なので出現確率を操作する事は禁止です。
    例えばコイントスの期待値は0ですが確率操作で期待値を200%する事は許されないという事です。

    No.7の回答に寄せられた補足コメントです。 補足日時:2024/04/22 11:46
  • 皆さんご回答有難うございます。
    「教えてGoo」のシステムが良く理解出来ず回答者一人一人に補足回答すると思ってました。

    確率コントロールはNG、現実起こりうる実現値が条件付けられてる以上、回答を読ませて戴きましたが期待値変動は無理みたいな感じです。
    まもなくレポート提出期限なので先生に求められた解を出す事は困難な事を交渉しようと思います。

    No.8の回答に寄せられた補足コメントです。 補足日時:2024/04/25 20:51

A 回答 (13件中1~10件)

もう提出期限は越えているかもしれないので今更ではあるんですが、問題文のいうところの期待値になるように-100から+100より狭い範

囲に制限をかけるのはどうでしょうか?(範囲外の値になったときはその値を捨てる)
    • good
    • 0

総和をn数で割ったものが期待値なんだけど(ここでは期待値200%なんて意味不明なことは一旦おいといて)。



その期待値っていうのは、

E(g(x))=∫g(x)f(x)dx

という、g(x)つまりスコア関数と、f(x)つまり密度関数の積の積分で表される。

総和はこれをn倍すれば決まる。

その式において、スコアつまり出力された値を変更せず、密度つまり分布も変えないというのであれば、計算結果が変わる訳がない。

正値の総和が、負値の総和の2倍になったり半分になったりする訳がない。

もう一度、先生に聞いてみたらどうですか?
    • good
    • 0

> 出現確率を操作する事は禁止です。



分布を変えるのが禁止なら、期待値が変わるわけがないんだけどな。
問題の設定が伝わってこない。
    • good
    • 0

No.6です。

訂正。

元の分布の発生率を変えるのはダメ。・・・No.5はダメ
元の分布に足し引きして値を変更するのもダメ。・・・No.6はダメ
    • good
    • 0

No.6です。



元の分布の発生率を変えるのはダメ。・・・No.6はダメ
元の分布に足し引きして値を変更するのもダメ。・・・No.7はダメ

許される操作は何ですか?

「その出力された数値をコントロール」という意味が、「ありのままの値で値を変更することは許されない」とすると、出現率を変えるしかないですよね。

それがダメとなると・・・
    • good
    • 0

No.4へのコメントについて。



 条件を漏れなく開示しなきゃダメです。(どうも、皆さんの回答をまともに読んでいるとは思えない。)
 だから「出された課題を一字一句変えずに補足なさるのが宜しかろう」と言ってるんです。もし、それができない特別な事情でもおありでしたら、以下の2点について補足してくださいな:

(1) 本当に「多くのロジックをプログラミングして検証した」んでしたら、そのうちの一つのプログラムを丸ごと補足に貼り付けてください。
 その中には、(A)数値をランダムに生成する部分、(B)(「ロジック」とおっしゃる)操作の一例、(C)操作結果から「期待値◯%」なるものを計算する部分、が必ず含まれていて、(B)がどうであろうと、どのプログラムも(A)と(C)は共通です。さらに、どんな言語でプログラムを書いているかもわかる。これで話がだいぶはっきりします。

(2) 「ロジック」において、「出力される数値」xに対して行える操作が何か。もちろん、単に「…様な事は反則です」だなんて例を示したって話になりません。なので、数学的に記述してください。例えば

● 「出力される数値」xを、xの二次式
    x² + ax + b (a, bは定数)
で計算される値に変換する。
● 「出力される数値」xを
   |x| + a x + b (a, bは定数)
で計算される値に変換する。
● 0から1の一様乱数yを生成して、「出力される数値」xを
   x + a y + b (a, bは定数)
で計算される値に変換する。

などなど、一体どんな操作が許されるか、いろんな可能性があるんで定まりません。
この回答への補足あり
    • good
    • 3

No.2 です。

「補足」を見ました。
(同じ内容なら「1つ」書けばよいと思います・・・)

「期待値」とは「実現値」と「その出現確率」の積の総和(連続分布なら積分)ですから、それを「操作する」には
・実現値を操作する(#2 に書いたように「シフトさせる」あるいは「バイアスを設ける」)
または
・出現確率を操作する(「ランダムに出力」ではなく、「分布させる」あるいは「重さをかける」)
といったことが必要でしょう。

その両方を「禁止」といったら手も足も出ません。
この回答への補足あり
    • good
    • 0

No.2さんの発想が面白くて思わずいいねを押したけど、値は違いますね。



横軸を、√2:1に分ける点になるから、±17.15729ですね。

x <- runif(100000, -100, 100) + (200 / (sqrt(2) + 1) - 100)

sum(x[x < 0]) / sum(x[x > 0])
[1] -2.000782

-2倍になっています。
これだと、ロジックも必要なく、1行でOKです。
この回答への補足あり
    • good
    • 0

正値の総和が負値の総和の2倍と言っていますが、負値を2倍しても負値にしかならないから、無理だと思うのですが、-2倍ということで宜しいですか?




-100から100までの一様乱数が出力されるモジュールがあるってことです。
であれば、そのモジュールを使えば良いです。

発生した乱数が正値か負値かによって条件判断に進み、他方の場合だけ半分採用すればいいのです。
半分採用する方法は、そのモジュールの正負でランダムに決めれば良いです。

Rで書くならば、下記のとおりです。
runif()という関数が一様乱数生成モジュールになります。


i <- 0 # カウンタ初期値
x <- NULL # 結果を収納する変数

while(i < 10000){

temp <- runif(1, -100, 100) # -100から100までの乱数を1個生成

if(temp < 0){
if(runif(1, -1, 1) > 0) x <- append(x, temp) # もし負ならば半分採用
} else {
x <- append(x, temp) # そうでないなら全部採用
}
i <- i + 1 # カウンタを増やす
}

hist(x, breaks = 10) # 最後に発生量をヒストグラム化

sum(x[x < 0]) # 負値の総和
[1] -124342.9
sum(x[x > 0]) # 正値の総和
[1] 249991.3

だいたい-2倍になっていますよね。気持ち悪ければもっと発生数を増やして下さい。
この回答への補足あり
    • good
    • 0

「確率学」なんて聞いたこともないが。



> -100から+100までの数値がランダムに出力

というだけでは、出力される数値がどんな分布に従っているのかは未定なので、これだけでは普通の意味での「期待値」など、実測してみるまで決まらない。
 
 次に、「多くのロジックをプログラミングし」たというそのプログラムは何らかの計算で

> 期待値は100%前後

という答を出したのだろう。しかし、そもそも普通の意味での「期待値」は"%"で表される割合なんかではないのだから、そのプログラムは何か(普通の意味での「期待値」ではない)別の値を計算しているに違いない。そして、一体何をどう計算すると曲がりなりにも"100%前後"なんて答が出てくるのかは、これだけの説明では分からない。

 さらに、「コントロール」や「ロジック」も意味不明。おそらく、何か操作をやろうということなのだろうが、さて、一体どんな操作ができてどんな操作ができないのかが明確でないことには話にならない。(もしどんな操作でもアリなら、例えば「ロジックをプログラミング」したプログラムは、出力された数値を単に無視して
  期待値200%
と表示すれば、確かに「期待値200%になる」には違いない。)

 ところで、

> マイナス値の総和がプラス値の総和の2倍

ということが生じるのは、出力された数値の個数が0である場合、すなわち「マイナス値の総和」と「プラス値の総和」が共に0である場合に限られる。(∵ 出力された数値の個数が1個以上なら、「マイナス値の総和」は「プラス値の総和」よりも必ず小さいのは明らか。)


> 課題を出されました。

とおっしゃる以上、それがかくもナンセンスだとはちょっと思えないんで、ご質問の文言は課題をイーカゲンに書き換えたものに違いない。それじゃダメで、出された課題を一字一句変えずに補足なさるのが宜しかろう。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A