tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
|
|
@ -0,0 +1,37 @@
|
|||
USING: arrays assocs combinators.random io kernel macros math
|
||||
math.statistics prettyprint quotations sequences sorting formatting ;
|
||||
IN: rosettacode.proba
|
||||
|
||||
CONSTANT: data
|
||||
{
|
||||
{ "aleph" 1/5.0 }
|
||||
{ "beth" 1/6.0 }
|
||||
{ "gimel" 1/7.0 }
|
||||
{ "daleth" 1/8.0 }
|
||||
{ "he" 1/9.0 }
|
||||
{ "waw" 1/10.0 }
|
||||
{ "zayin" 1/11.0 }
|
||||
{ "heth" f }
|
||||
}
|
||||
|
||||
MACRO: case-probas ( data -- case-probas )
|
||||
[ first2 [ swap 1quotation 2array ] [ 1quotation ] if* ] map 1quotation ;
|
||||
|
||||
: expected ( name data -- float )
|
||||
2dup at [ 2nip ] [ nip values sift sum 1 swap - ] if* ;
|
||||
: generate ( # case-probas -- seq )
|
||||
H{ } clone
|
||||
[ [ [ casep ] [ inc-at ] bi* ] 2curry times ] keep ; inline
|
||||
: normalize ( seq # -- seq )
|
||||
[ clone ] dip [ /f ] curry assoc-map ;
|
||||
: summarize1 ( name value data -- )
|
||||
[ over ] dip expected
|
||||
"%6s: %10f %10f\n" printf ;
|
||||
: summarize ( generated data -- )
|
||||
"Key" "Value" "expected" "%6s %10s %10s\n" printf
|
||||
[ summarize1 ] curry assoc-each ;
|
||||
: generate-normalized ( # proba -- seq )
|
||||
[ generate ] [ drop normalize ] 2bi ; inline
|
||||
: example ( # data -- )
|
||||
[ case-probas generate-normalized ]
|
||||
[ summarize ] bi ; inline
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
USE: rosettacode.proba
|
||||
1000000 data example
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
Key Value expected
|
||||
heth: 0.063469 0.063456
|
||||
waw: 0.100226 0.100000
|
||||
daleth: 0.125844 0.125000
|
||||
beth: 0.166264 0.166667
|
||||
zayin: 0.090806 0.090909
|
||||
he: 0.110562 0.111111
|
||||
aleph: 0.199868 0.200000
|
||||
gimel: 0.142961 0.142857
|
||||
Loading…
Add table
Add a link
Reference in a new issue