|
Post by cryberg on Mar 19, 2024 22:43:32 GMT
Subject line says it all.
|
|
|
Post by tsh73 on Mar 20, 2024 5:45:59 GMT
Rnd(0) returns random number between 0 and 1 Common usage is Int(rnd(0)*10) Etc.
Every RUN starts new sequence of numbers If you need same sequence, use Randomize seed Where seed is number between 0 and 1
|
|
|
Post by xxgeek on Mar 20, 2024 14:10:01 GMT
An example for kicks
print int(rnd(1)*10)
print int(rnd(1)*100)
print int(rnd(1)*1000)
print int(rnd(1)*10000)
print int(rnd(1)*100000)
print int(rnd(1)*1000000)
print int(rnd(1)*10000000)
print int(rnd(1)*100000000)
print int(rnd(1)*1000000000)
print int(rnd(1)*10000000000)
print int(rnd(1)*100000000000)
print int(rnd(1)*1000000000000)
print int(rnd(1)*10000000000000)
print int(rnd(1)*100000000000000)
print int(rnd(1)*1000000000000000)
print int(rnd(1)*10000000000000000)
print int(rnd(1)*100000000000000000)
print int(rnd(1)*1000000000000000000)
print int(rnd(1)*10000000000000000000)
print int(rnd(1)*100000000000000000000)
print int(rnd(1)*1000000000000000000000)
print int(rnd(1)*10000000000000000000000)
print int(rnd(1)*100000000000000000000000)
print int(rnd(1)*1000000000000000000000000)
print int(rnd(1)*10000000000000000000000000)
print int(rnd(1)*100000000000000000000000000)
print int(rnd(1)*1000000000000000000000000000)
print int(rnd(1)*10000000000000000000000000000)
print int(rnd(1)*100000000000000000000000000000)
print int(rnd(1)*1000000000000000000000000000000)
print int(rnd(1)*10000000000000000000000000000000)
print int(rnd(1)*100000000000000000000000000000000)
print int(rnd(1)*1000000000000000000000000000000000)
|
|
|
Post by tsh73 on Mar 20, 2024 16:03:17 GMT
xxgeek, rnd(1) is floating pont number very likely C double type That means some 16 significant numbers see: print using ("#.#######################", 1/3) 0.3333333333333332983808 anything after 3 is bogus That ends up with valid digits as print using ("#.###############", 1/3) 16 '#'
So where rest of numbers you print could came from?
|
|
|
Post by xxgeek on Mar 20, 2024 16:21:46 GMT
I have no idea. I only know where they didn't come from The rnd(1) is straight from the JB help file under RND(n)
|
|
|
Post by tsh73 on Mar 20, 2024 16:43:40 GMT
Well, I have no idea either But I just found that you can get same sequence of numbers by PRINT USING with format exceeding actual digits seed=0.1 randomize seed r=rnd(1) print r print using ("#.###############", r) print using ("#.###############################", r) print " ";int(r*10000000000000000) print " ";int(r*100000000000000000) print " ";int(r*1000000000000000000) print " ";int(r*10000000000000000000) print " ";int(r*100000000000000000000) print " ";int(r*1000000000000000000000) print " ";int(r*10000000000000000000000) print " ";int(r*100000000000000000000000) print " ";int(r*1000000000000000000000000) print " ";int(r*10000000000000000000000000) print " ";int(r*100000000000000000000000000) print " ";int(r*1000000000000000000000000000) print " ";int(r*10000000000000000000000000000) print " ";int(r*100000000000000000000000000000) print " ";int(r*1000000000000000000000000000000) print " ";int(r*10000000000000000000000000000000) print " ";int(r*100000000000000000000000000000000) print " ";int(r*1000000000000000000000000000000000) print " ";int(r*10000000000000000000000000000000000000000000000000000000000000000000000000000)
|
|
|
Post by xxgeek on Mar 20, 2024 17:12:15 GMT
Same thing if you use rnd(0) or rnd(1) in your code.
So, what's up? I'm confused. Is this expected?
|
|