作者chingi (拒看台湾的垃圾媒体)
看板MATLAB
标题Re: [问题] 关於乱数产生器
时间Sat Aug 20 22:54:32 2005
※ 引述《gyro (愿赌服输~)》之铭言:
: 我想要从 1 ~ 8 之间
: 随机选择一个出来
: 本来想要用 8*rand+1
: 因为rand 似乎是从 0 ~ 1 之间随便选一个小数
: 可是每次执行结果
: 第一次 rand 都会等於 0.9501
: 第二次 0.2311
: 第三次 0.6068
: 这样每次想要抽样 都会抽到 8 2 5 .....
: 就失去乱数的意义了呀
:
: 换成randn指令也一样耶
: 第一次 randn 是 -0.4326
: 第二次 -1.6656
: 也是有规律 =.=||| 真不知道怎样才能用到乱数指令~
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 218.166.68.155
: 推 chingi:change your seed 199.74.99.98 08/20
: 推 principeiii:floor(9*rand(1)) 就可以了 btw楼上的我不懂 219.84.89.130 08/20
原PO的问题不在於取整数吧
而是每次都产生一样的乱数序列
请参考以下 help rand 的说明
RAND produces pseudo-random numbers. The sequence of numbers
generated is determined by the state of the generator. Since MATLAB
resets the state at start-up, the sequence of numbers generated
will
be the same unless the state is changed.
S = RAND('state') is a 35-element vector containing the current state
of the uniform generator. RAND('state',S) resets the state to S.
RAND('state',0) resets the generator to its initial state.
RAND('state',J), for integer J, resets the generator to its J-th state.
RAND('state',sum(100*clock)) resets it to a different state each time.
--
PTT 有个讨论芝加哥的版 ---
生活娱乐馆 生活, 娱乐, 心情
GlobalView 国际 Σ世界地球村 → 美国/异国旅游
Chicago 都市 ●芝加哥 Chicagoland
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 199.74.99.98
1F:推 principeiii:感谢指导 219.84.89.130 08/21