Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,32 @@
|
|||
USING: assocs assocs.extras formatting io kernel math
|
||||
math.functions math.statistics random sequences
|
||||
tools.memory.private ;
|
||||
|
||||
: modifier ( x -- y ) 0.5 over 0.5 < [ swap ] when - dup + ;
|
||||
|
||||
: random-unit-by ( quot: ( x -- y ) -- z )
|
||||
random-unit dup pick call random-unit 2dup >
|
||||
[ 2drop nip ] [ 3drop random-unit-by ] if ; inline recursive
|
||||
|
||||
: data ( n quot bins -- histogram )
|
||||
'[ _ random-unit-by _ * >integer ] replicate histogram ;
|
||||
inline
|
||||
|
||||
:: .histogram ( h -- )
|
||||
|
||||
h assoc-size :> buckets ! number of buckets
|
||||
h sum-values :> total ! items in histogram
|
||||
h values supremum :> max ! largest bucket (as in most occurrences)
|
||||
40 :> size ! max size of a bar
|
||||
|
||||
total commas buckets
|
||||
"Bin Histogram (%s items, %d buckets)\n" printf
|
||||
|
||||
h [| k v |
|
||||
k buckets / dup buckets recip + "[%.2f, %.2f) " printf
|
||||
size v * max / ceiling
|
||||
[ "▇" write ] times bl bl v commas print
|
||||
] assoc-each ;
|
||||
|
||||
"Modified random distribution of values in [0, 1):" print nl
|
||||
100,000 [ modifier ] 20 data .histogram
|
||||
Loading…
Add table
Add a link
Reference in a new issue