Changes

Jump to: navigation, search

Programming:Random Number Generator

800 bytes added, 19:11, 6 August 2006
Initial page
== 8-bit Random Number Generator ==

This is a very simple generator. It's function is x[i + 1] = (5 * x[i] + 1) mod 256. The only advantage is the small size and it's simplicity.

'''Input:''' ''none''

'''Output:''' A = ''a pseudo random number, period 256''

<pre>
Rand8 ld a,Seed ; Seed is usually 0
ld b,a
add a,a
add a,a
add a,b
inc a ; another possibility is ADD A,7
ld (Rand8+1),a
ret
</pre>

== 16-bit Random Number Generator ==

This algorithm uses a similar method, but returns much better results.

'''Input:''' ''none''

'''Output:''' A = ''a pseudo random number, period 65536''

<pre>
Rand16 ld de,Seed ; Seed is usually 0
ld a,d
ld h,e
ld l,253
or a
sbc hl,de
sbc a,0
sbc hl,de
ld d,0
sbc a,d
ld e,a
sbc hl,de
jr nc,Rand
inc hl
Rand ld (Rand16+1),hl
ret
</pre>
1,165
edits