[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Subject: RE: Change seed for every iteration
From: |
J Naman |
Subject: |
Subject: RE: Change seed for every iteration |
Date: |
Fri, 3 Nov 2023 13:37:28 -0400 |
When I do seed setting, I aim for 30 bits (integer) from time
Using awk::gettimeofday()
The first 10 decimal digits are seconds, so ignore
The next 8 digits are subsecond time value == 10 nanosec
The rest are effectively noise IMHO no value for seeding
@load "time"
# get 9 digits = 30 bit integer from time to use as srand() seed
# using largest number of relevant bits available
# ns=nanosecond= 10^-9; 1/1,000,000,000=> fmt=".9f"
function awk::rand_seed_from_time( x)
{ x=awk::gettimeofday()
# example 1677689070.911245822906494140625000
# 1677689070 = 10 digits == secs since 1900
# .91124582 = 8 digits subsecond time value
# get 8 decimal digits of accuracy == 10 nanosecs
x=int(x*(10^8)) # truncate the noise below 10 nanosec
return x%(10^9) # return 9 (not 8) digits = 30 bits
}
- Subject: RE: Change seed for every iteration,
J Naman <=