討論區快速選單
知識庫快速選單
軟實力課程1+1,第二科享5折優惠 CSSLP認證,將資安落實在軟體開發中 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
ASSEMBLY 達成隨機的方法
更改我的閱讀文章字型大小
作者 : jackjack369(Jack)
[ 貼文 13 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/10/7 下午 09:12:06
假如說要從1-9隨機選出一數字
如何達成問題

還有
推薦 現在買的到的 ASSEMBLY書籍(清楚 詳細)

請大家幫我解答
作者 : ho520(ho)
[ 貼文 14 | 人氣 9 | 評價 50 | 評價/貼文 3.57 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2014/12/21 下午 03:50:30

.data

Seed DQ ? ;這是亂數種子 自己設起始值

.code

Get_1to9 PROC

LEA RCX , [Seed]
MOV RAX , [RCX]
MOV RDX , 5851F42D4C957F2Dh ;取線性同餘乘法常數是有學問的 不可任意修改
IMUL RAX , RDX
MOV RDX , 14057B7EF767814Fh ;加法常數也不可任意修改
ADD RAX , RDX
MOV [RCX] , RAX

SHR RAX , 32
IMUL RAX , 9
SHR RAX , 32 ;RAX=0-8

INC RAX ;RAX=1-9

RET

Get_1to9 ENDP


END
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4464 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2014/12/22 下午 01:44:07
C. E. Haynes' multiplier is 6364136223846793005
random number generating theory , please refer to Dr. Knuth's book - the art of programming Vol II - seminumerical algorithms , 3,3,4 section .
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4464 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2014/12/22 下午 04:34:37
http://lamar.colostate.edu/~grad511/lcg.pdf
作者 : ho520(ho)
[ 貼文 14 | 人氣 9 | 評價 50 | 評價/貼文 3.57 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2014/12/22 下午 10:57:36
一般的知識只知道 6364136223846793005 這個常數的出處

至於是如何找到這個係數 , 那可就大學問了 , 幾乎LCG的文章都沒提及這方面的技術

個人是猜想可能帶有隨機試驗的方式 , 反覆統計直到理想的分布

只是如果推廣到 128bit 或 256bit , 那這個常數可難以取得了 , 驗證更困難
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4464 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2014/12/23 上午 09:20:58
about the value of multiplier , maybe Knuth's book can give you ideas.
作者 : ho520(ho)
[ 貼文 14 | 人氣 9 | 評價 50 | 評價/貼文 3.57 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2014/12/23 下午 04:07:30
Knuth提到的原則是必要的條件 但是他強調並非充分的條件
所以要透過統計檢驗來確定乘法常數算是"很好"
至於6364136223846793005 是"最好"嗎? 難解...

要取乘數的邏輯困難點在於做光譜檢驗之前 , 如何得到可通過檢驗的方法
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4464 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2014/12/23 下午 05:14:45
http://www.pnas.org/content/61/1/25.full.pdf
作者 : x21(x21)
[ 貼文 21 | 人氣 242 | 評價 40 | 評價/貼文 1.9 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/1/4 下午 02:48:43
取自小木偶的網頁→Win32組合語言→第26章
http://wanker742126.myweb.hinet.net/
;---------------------------------------------------
;返回時,EAX為0∼(iRange-1)的亂數
tiny_random PROC USES edx iRange
     LOCAL A,B:DWORD
     rdtsc
     mov B,0
     mov A,100711433
     adc eax,edx
     adc eax,B
     mul A
     adc eax,edx
     mov B,eax
     mul iRange
     mov eax,edx
     ret
tiny_random ENDP
;----------------------------------------------------
呼叫時,用
INVOKE tiny_random,10
,能傳回0∼9的亂數
作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4464 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/1/5 上午 09:33:46
.data
  upper BYTE 1000 ;setting upper limit 100
  lower BYTE 0 ;setting lower limit 0
  number BYTE 5 ;number of random numbers

.code
call main
exit

main proc

   cls ; clear screen
   mov bx,upper ; moving upper bound into bx
   mov dx,lower ; moving lower bound into dx
   mov ax,2914017 ;taking a random number for this trial
   mov ecx,number ;setting the loop counter

Formula :
 
   sub bx,dx ; upper-lower
   div bx
   add ah,dx ; randomNumber = (seed % (upper-lower) + lower)

main endp


作者 : ozzy123(ozzy) 資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4464 | 人氣 37262 | 評價 10860 | 評價/貼文 2.43 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2015/1/5 上午 09:34:53
http://en.wikipedia.org/wiki/Mersenne_twister
 板主 : 徵求中
 > 組合語言 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 組合語言 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
組合語言
1 H 2220 
2 liaoo 990 
3 青衫 970 
4 牧童哥 940 
5 史努比 920 
6 qq 480 
7 GHOST-JACKY 330 
8 ]CALL-151 310 
9 harrison 300 
10 掌握文武半邊天 280 
組合語言
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125