D版能人多,问一个数学问题!!

  • r
    radiance
    投掷一个公平的硬币,直至首次出现相继的两个正面为止,求投掷次数的方差,要计算过程。


    自己想到一个算法,不知道对不对

  • r
    radiance
    咋一个回复的都没有呢
  • 我是MIAOW
    孩子都上学了,留在家刷D版的家长不会做…小尾巴~
  • f
    fushia
    超出能力范围…💫
  • a
    alexandrite
    写段程序仿真一下吧。
  • z
    zsdicky
    刚好早些时间在看概率论的书,到现在都忘了
  • z
    zw963
    只推的出概率的方程, 接下来怎么推忘了, 再想想
    lua脚算出来大约的值 31.2517058828
    1. local sum_x = {
    2. [0] = 0,
    3. [1] = 0,
    4. [2] = 0.25,
    5. [3] = 0.375,
    6. }

    7. local prob_x = {
    8. [0] = 0,
    9. [1] = 0,
    10. [2] = 0.25,
    11. [3] = 0.125
    12. }

    13. function sum_prob(x)
    14. if sum_x[x] ~= nil then
    15. return sum_x[x]
    16. end
    17. sum_x[x] = prob(x) + sum_prob( x - 1)
    18. return sum_x[x]
    19. end

    20. function prob(x)
    21. if prob_x[x] ~= nil then
    22. return prob_x[x]
    23. end
    24. prob_x[x] = (1 - sum_prob(x-3))/8
    25. return prob_x[x]
    26. end


    27. function calc_average(n)
    28. local sn = 0
    29. for i = 1, n, 1 do
    30. sn = sn + i * prob(i)
    31. end
    32. return sn
    33. end


    34. local times = 1000000

    35. local average = calc_average(times)
    36. local ss = 0
    37. for i = 1, times, 1 do
    38. ss = ss + i * i * prob(i)
    39. end

    40. local variance = ss - average * average
    41. print(variance)
    复制代码
  • r
    radiance
    回复8#zw963
    我手算的得5.5,也不知道对不对 iOS fly ~
  • z
    zw963
    回复9#radiance


    嗯, 我这里也没考虑精度, 可能有问题还是得推出公式才行