LoveUnix » 编程开发 & Rational » ..........................
让LU留住您的每

一天 让LU博客留住您的每一天
2008-3-17 17:56 SYMBIAN新手
..........................

  ...........................

[[i] 本帖最后由 SYMBIAN新手 于 2008-4-7 02:10 编辑 [/i]]

2008-3-17 19:49 蓝色的忧郁
[b]对于随机数问题[/b]
我 google : 随机数+symbian

得到的答案有很多,以下几个对我帮助很大,让我搞清楚了什么是随机数,如何在程序之中实现随机数

[url=http://blog.csdn.net/kati/archive/2006/06/12/790904.aspx]http://blog.csdn.net/kati/archive/2006/06/12/790904.aspx[/url]

[quote]论开发什么程序,尤其是类似纸牌类游戏和拼图类,以及俄罗斯方块之类的游戏,随机数发生器是必不可少的。标准c语言里面有seed()和rand()用来生成种子和数值
在symbian平台下面,用什么方法呢?下面就是一个例子
[code]TTime theTime( KAknExNoteInitializeTime );
theTime.UniversalTime();
TInt64 randSeed( theTime.Int64() );   // 采用时间初始化随机数种子
TInt number( Math::Rand( randSeed ) % KAknExNoteRandomNumberRange ); [/code] // 这里就是调用了
生成的结果放在number中。
[/quote]

还有关于随机数中种子概念的澄清

[url=http://discussion.forum.nokia.com/forum/archive/index.php/t-54113.html]http://discussion.forum.nokia.com/forum/archive/index.php/t-54113.html[/url]

[quote]计算机所产生的随机数并不是真正的随机,而是通过一定的算法而生成的一个数字,这个道理是在任何一本程序语言教科书里都能找到的。想产生不同的随机数就要置不同的随机种子,而为了让程序每次运行的结果不尽相同,一般都将随机种子置为当前时间之类。

对于随机数的生成,仅仅是将一个差别很小的数进行不断的放大而已,比如4和5仅仅相差1个,如果放大10倍就相差10,对于计算机来说,当算法一定的时候,初始条件相同的话就会产生相同的结果,因此即使是Math::Random()也是有可能产生两个相同的随机数的,但就概率方面来说几率是非常小的,而对于Math::Rand(TInt64 &aSeed)来说,由于种子和算法在刚开始就被确定的,因此相同的种子可以产生相同的随机数,从而达到再现的结果。对于Math::Random()可能使用的是CPU时钟作为随机数种子,我个人这么认为,至于真实情况,我认为没太大必要讨论的那么清楚。[/quote]

你的提问:
[quote]
我就不知道layout=ENumberlayout;  这里是不是代表我输入的数字已经转成整形了? 如果不是那么具体的字符串转整形杂弄啊。
[/quote]

你可以跟踪一下程序,在这里设个断点,跟踪一下就能看出来有没有转化为整形。

如果没有的话:
google : symbian+字符串转整型

[url]http://discussion.forum.nokia.com/forum/showthread.php?t=30239[/url]

使用TLex 我看了一下SDK,用起来是很简单的,相信你也能很容易的处理好

[quote]
我RSS里输入的数字怎么和这个随即数里面的范围联系起来呢?         然后是显示出“”+“”=“?”的 我又不知道从哪入手了
[/quote]

你可以通过一个变量传递一下啊,输入的数字保存在哪里,你应该知道吧。然后让随机数的最大值等于你保存的这个数。

对于弹出对话框对话框的处理可以参考SDK中 Series 60 SDK for Symbian OS Query control example, 另外对于对话框,如果你需要的话,我可以发一个关于对话框操作的文档给你.

希望这个能对你有所帮助, 欢迎你继续交流

页: [1]
查看完整版本: ..........................


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.