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

[讨论] 一个有趣的博弈策略

[复制链接]
 楼主| 发表于 2010-5-18 10:39:11 | 显示全部楼层
谢谢056254628 的解答,能否把程序共享一下?俺苦于不会编程啊。 感激不尽。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-18 13:46:05 | 显示全部楼层
我是用VB语言的,给你不适用。 由于函数F(R,G,B)中B是不限范围的,很难用倒推的方法推出F(30,70,1)的值。 正推的话,如何处理F函数的重复计算,关系到程序的速度。 我的想法是记录F函数的使用情况,若使用过的就记录下来,下次求该值直接从该处找。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-5-18 13:55:18 | 显示全部楼层
兄弟,你就把vb代码发给俺学习一下吧?好吗?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-18 20:57:56 | 显示全部楼层
本帖最后由 056254628 于 2010-5-18 21:23 编辑 Private Function f(ByVal R As Long, ByVal G As Long, ByVal B As Long) As String Dim temp As Long Dim k As Long Dim str1 As String Dim temp2 As Long Dim Jieguo As Long Jieguo=0 If G = 0 Then If B <= 0 Then f = 1 Else temp = 2 ^ R - 1 If B Mod temp = 0 Then f = B / temp Else f = B \ temp + 1 End If End If ElseIf R = 0 Then If B <= -1 * G Then f = G Else f = "∞" End If Else k = 1 Do str1 = f(R - 1, G, B - k) If str1 = "∞" Then k = k + 1 Else temp = f(R, G - 1, B + k) + k temp2 = CLng(str1) - k If temp >= temp2 Then If Jieguo = 0 Then Jieguo = temp Else If temp < Jieguo Then Jieguo = temp End If End If f = Jieguo Exit Function Else Jieguo = temp2 k = k + 1 End If End If Loop While True End If End Function ----------------------------------------------------- 此程序还没经过优化,计算稍大的数,速度很慢。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-5-18 21:08:06 | 显示全部楼层
谢谢,我在我电脑上运行看看。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-18 21:58:27 | 显示全部楼层
我觉得递推公式可以简化到如下: 当R、G都大于0时 F(R,G,B)=F(R,G-1,B+k)+k k取满足 F(R,G-1,B+k)+k >= F(R-1,G,B-k)-k 的最小正整数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-5-18 22:30:53 | 显示全部楼层
当R=1 时,由于 F(R-1,G,B-k)有时 会涉及到无解的问题, 所以将递推公式,写成如下: $F(R,0,B)=Ceil(B/(2^R-1)) $ Ceil(X) 表示不小于X的最小整数。 $F(1,G,B)=(2^(G+1)-1)*B+(G-1)*2^(G+1)+2$ $ F(R,G,B)=F(R,G-1,B+k)+k $ k取 满足$F(R,G-1,B+k)+k >= F(R-1,G,B-k)-k$ 的最小正整数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-22 01:21 , Processed in 0.028940 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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