找回密码
 欢迎注册
楼主: nnd

[原创] 落英局

[复制链接]
发表于 2013-5-11 10:50:39 | 显示全部楼层
1# nnd
应该强调从风吹来时开始计时,之后落花
没太明白。只需强调 黑白花 相邻的两次落地的时间间隔是均匀分布的随机数 就行吧。 BTW,据我所知,桃树不可以长的这么高大的啊,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2013-5-11 12:33:22 | 显示全部楼层
10# wayne 概率论一般是不计算时间的,只计算事件。hujunhua,跟时间混在一起的概率论分支,有吗?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2013-5-29 13:41:16 | 显示全部楼层
从风吹的那一刻起,红花落在棋盘上的时间间隔为1~5秒的随机自然数,白花的间隔为1~10秒的随机自 然数。 请问100秒内,红白桃花四手成弈的概率是多少? 注:红花,白花,红花,白花依次落在棋盘上为四手成弈 模拟的结果大约为80.6%

评分

参与人数 1金币 +1 经验 +3 收起 理由
KeyTo9_Fans + 1 + 3 还是小。正解应该是$0.8143362367241267$。

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2013-6-3 14:17:15 | 显示全部楼层
这个代码是用excel的VBA写的。算出了一个模拟值。帮我看看有没有问题? Sub yaokong() ‘from http://110.76.45.160/thread-76-1-1.html Dim tRed(100), tWhite(100) As Integer 'the time when dropping Dim tRedWhite(200) As Integer '{0,0,1,1,2,1,0} means white dropping,white dropping,red dropping,red,same time dropping,red dropping,white dropping, Dim lRed, lWhite As Integer 'drop times Dim i, j, N, K As Integer Dim iR, iW As Integer Dim eFF As Integer Dim N1, K1 As Single N = 0 K = 32767 For j = 1 To K lRed = 0 lWhite = 0 For i = 0 To 99 tRed(i) = 0 tWhite(i) = 0 Next i tRed(0) = Int(5 * Rnd) + 1 While tRed(lRed) < 99 lRed = lRed + 1 tRed(lRed) = Int(5 * Rnd) + 1 + tRed(lRed - 1) Wend If tRed(lRed) > 100 Then lRed = lRed - 1 tWhite(0) = Int(10 * Rnd) + 1 While tWhite(lWhite) < 99 lWhite = lWhite + 1 tWhite(lWhite) = Int(10 * Rnd) + 1 + tWhite(lWhite - 1) Wend If tWhite(lWhite) > 100 Then lWhite = lWhite - 1 iR = 0 iW = 0 i = 0 While i < lRed + lWhite 'white 0,red 1 If tRed(iR) > tWhite(iW) Then tRedWhite(i) = 0 iW = iW + 1 i = i + 1 ElseIf tRed(iR) < tWhite(iW) Then tRedWhite(i) = 1 iR = iR + 1 i = i + 1 Else tRedWhite(i) = 2 i = i + 1 tRedWhite(i) = 2 i = i + 1 iR = iR + 1 iW = iW + 1 End If Wend eFF = 1 i = 0 While eFF = 1 And i < lRed + lWhite - 2 If tRedWhite(i) = 1 And tRedWhite(i + 1) = 0 And tRedWhite(i + 2) = 1 And tRedWhite(i + 3) = 0 Then eFF = 0 End If i = i + 1 Wend If eFF = 0 Then N = N + 1 Next j For i = 0 To lRed Sheets(1).Cells(i + 1, 1).Value = tRed(i) Next i For i = 0 To lWhite Sheets(1).Cells(i + 1, 2).Value = tWhite(i) Next i For i = 0 To iW + iR Sheets(1).Cells(i + 1, 3).Value = tRedWhite(i) Next i N1 = N K1 = K MsgBox ("N=" & N & " " & "K=" & K & " " & "N/k=" & N1 / K1) End Sub
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2013-6-3 16:49:52 | 显示全部楼层
代码是否正确,只能由编程者自己把握,非编程者很难代劳。 你只要告诉我: 1、你的模拟次数是$32767$次; 2、每次模拟均为$100$个时刻。 3、对于每次模拟的每个时刻:红花落记为$0$,白花落记为$1$,同时落记为$2$,没有花落就不记; 4、如果记录中出现$0101$,则成弈,否则不成弈。 我就知道你的算法是对的了。 至于模拟结果$0.806$与真实值$0.8143362367241267$之差有$0.008$, 当模拟次数仅为$32767$时是可以接受的。 我也做过$1$个模拟,次数为$10^10$,结果为$0.814345$,与真实值之差为$0.000009$。 至于代码是否完全正确无误,只能由编程者自己把握,非编程者是很难代劳的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2013-6-3 18:54:12 | 显示全部楼层
15# KeyTo9_Fans 佩服。准确值是怎么算的呢?我算不出来
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2013-6-5 11:00:36 | 显示全部楼层
以时间作限并不能揭示问题本质。 我还是以回合的方式考虑吧,$1$回合表示红白分别落一次。 设第n回合,红白落地的间隔分别需要$r_k$,$w_k$,则我们可以设 $S_n=\sum_{k=1}^{n}(r_k-w_k)$,其中$r_k$,$w_k$分布服从[1,5],[1,10]的均匀分布。 于是接下来,我们考虑$S_n$ 的概率分布
  1. GatherBy[Sort@Tally@Flatten@Table[i+j+k+s-p-m-n-t,{i,5},{j,5},{k,5},{s,5},{t,10},{n,10},{m,10},{p,10}],Sign[#[[1]]]&]
复制代码
算得S小于0,等于0,大于0的概率分布分别是 S1:{7/10,1/10,2/10} S2:{83/100,1/20,13/100} S3:{13948/15625,953/31250,2401/31250} S4:{5810743/6250000,121389/6250000,79467/1562500}

评分

参与人数 1经验 +3 收起 理由
KeyTo9_Fans + 3 到最后岂不是“几乎都小于0”?

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2013-6-6 19:12:36 | 显示全部楼层
有一天,Fans来到了一个世外桃园, 没想到竟然在桃园里看到了wayne(在桃园里来回走动)。 桃园里有一堵$10$米长的红墙和一堵$5$米长的白墙, 两堵墙恰好形成了一个直角,如下图所示: 角红红红红红红红红红红 白 白 白 白      W 白 (“角”=“墙角”,“红”=“红墙”,“白”=“白墙”,“W”=“wayne”) 经过耐心观察,Fans发现wayne在每个单位时间里是按照如下方式走动的: 1、向左上方走$\sqrt{2}$米; 2、如果碰到了红墙,就后退$1$~$5$米(后退$1$米、后退$2$米、……、后退$5$米的概率均为$20%$); 3、如果碰到了白墙,就向右走$1$~$10$米(向右$1$米、向右$2$米、……、向右$10$米的概率均为$10%$); 4、如果碰到的是墙角,就后退$1$~$5$米(后退$1$米、后退$2$米、……、后退$5$米的概率均为$20%$),然后向右走$1$~$10$米(向右$1$米、向右$2$米、……、向右$10$米的概率均为$10%$)。 这个世外桃园非常神奇: 一旦wayne碰到了红墙,就会有$1$片红色的花瓣从天而降,落到wayne的手里; 一旦wayne碰到了白墙,就会有$1$片白色的花瓣从天而降,落到wayne的手里; 如果wayne碰到的是墙角,就会有$1$片红色的花瓣和$1$片白色的花瓣同时从天而降,落到wayne的手里。 而wayne仙人也非常古怪: 1、当手里什么也没有的时候: 如果有$1$片红色的花瓣从天而降:拿着; 如果有$1$片白色的花瓣从天而降:扔掉; 如果有$1$片红色的花瓣和$1$片白色的花瓣同时从天而降:统统扔掉; 2、当手里有$1$片红色的花瓣的时候: 如果有$1$片红色的花瓣从天而降:把原来的红花瓣扔掉,拿新来的; 如果有$1$片白色的花瓣从天而降:拿着; 如果有$1$片红色的花瓣和$1$片白色的花瓣同时从天而降:统统扔掉,包括原来的红花瓣; 3、当手里有$1$片红色的花瓣和$1$片白色的花瓣的时候: 如果有$1$片红色的花瓣从天而降:拿着; 如果有$1$片白色的花瓣从天而降:统统扔掉,包括原来拿着的花瓣; 如果有$1$片红色的花瓣和$1$片白色的花瓣同时从天而降:统统扔掉,包括原来拿着的花瓣; 4、当手里有$2$片红色的花瓣和$1$片白色的花瓣的时候: 如果有$1$片红色的花瓣从天而降:把原来拿着的花瓣统统扔掉,把新的红花瓣拿着; 如果有$1$片白色的花瓣从天而降:拿着; 如果有$1$片红色的花瓣和$1$片白色的花瓣同时从天而降:统统扔掉,包括原来拿着的花瓣; 5、当手里有$2$片红色的花瓣和$2$片白色的花瓣的时候: 如果有$1$片红色的花瓣从天而降:把原来拿着的花瓣继续拿着,新来的不要; 如果有$1$片白色的花瓣从天而降:把原来拿着的花瓣继续拿着,新来的不要; 如果有$1$片红色的花瓣和$1$片白色的花瓣同时从天而降:把原来拿着的花瓣继续拿着,新来的不要。 经过如此细致的一番观察之后,Fans开始思考: 如果wayne的初始位置是随机的(把$5$*$10$范围里的每$1$块空地作为起点的概率均为$2%$),并且手里没有花瓣, 那么经过了$100$个单位时间之后,wayne手里拿着的是$2$片红色的花瓣和$2$片白色的花瓣的概率是多少呢? Fans从世外桃园回来之后,打开数学研发论坛,发现nnd楼主已经写了$1$个程序($14$楼),模拟了wayne的走法,并把近似结果算出来了($13$楼)。

评分

参与人数 1金币 +12 鲜花 +12 收起 理由
wayne + 12 + 12 Fans才华横溢,简直要溢成灾了(之前的没显示 ...

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2013-6-6 20:24:02 | 显示全部楼层
给出状态转移矩阵后就可精确求值了: matrix.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2013-6-6 23:54:53 | 显示全部楼层
17# wayne Sn的三个概率值之和始终为1,不会出现“都几乎小于0” 的。 我算到S4的时候,突然间意识到Si和Sj不是独立的,所以戛然而止。 ================ 不过,倒是可以带出一个新的问题,就是红花和白花各自落英100个回合之后,红花总共所花时间大于白花总共所花时间 的概率是多少。 ================ 还是Fans整出的世外桃源之说 传奇而新颖,而且,而且脉络非常清晰,很适合于编程实现,只是仍然不方便理论计算吧? ================ mathe提及“状态转移矩阵”,我感觉还是很麻烦,或许是我未得要点?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2025-1-23 11:34 , Processed in 0.028429 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表