Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Cocoa
- class LinearCongruntialGenerator {
- var state = 0 //seed of 0 by default
- let a, c, m, shift: Int
- //we will use microsoft random by default
- init() {
- self.a = 214013
- self.c = 2531011
- self.m = Int(pow(2.0, 31.0)) //2^31 or 2147483648
- self.shift = 16
- }
- init(a: Int, c: Int, m: Int, shift: Int) {
- self.a = a
- self.c = c
- self.m = m //2^31 or 2147483648
- self.shift = shift
- }
- func seed(seed: Int) -> Void {
- state = seed;
- }
- func random() -> Int {
- state = (a * state + c) % m
- return state >> shift
- }
- }
- let microsoftLinearCongruntialGenerator = LinearCongruntialGenerator()
- let BSDLinearCongruntialGenerator = LinearCongruntialGenerator(a: 1103515245, c: 12345, m: 2147483648, shift: 0)
- print("Microsft Rand:")
- for(var i = 0; i < 10; i++)
- {
- print(microsoftLinearCongruntialGenerator.random())
- }
- print("") //new line for readability
- print("BSD Rand:")
- for(var i = 0; i < 10; i++)
- {
- print(BSDLinearCongruntialGenerator.random())
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement