Verify distribution uniformity/Naive: Difference between revisions
Content added Content deleted
(→{{header|J}}: simplify) |
(→{{header|J}}: pure explicit vs explicit with embedded tacit expressions) |
||
Line 179: | Line 179: | ||
n=. */y |
n=. */y |
||
delta=. x |
delta=. x |
||
sample=. u n NB. the u refers to the verb |
sample=. u n NB. the "u" refers to the verb to left of adverb |
||
freqtable=. /:~ (~. ,. #/.~ |
freqtable=. /:~ (~. sample) ,. #/.~ sample |
||
expected=. n % # freqtable |
expected=. n % # freqtable |
||
errmsg=. 'Distribution is potentially skewed' |
errmsg=. 'Distribution is potentially skewed' |
||
errmsg assert |
errmsg assert (delta * expected) > | expected - {:"1 freqtable |
||
freqtable |
|||
) |
|||
</lang> |
|||
It is possible to use tacit expressions within an explicit definition enabling a more functional and concise style: |
|||
<lang j> |
|||
checkUniformT=: adverb define |
|||
0.05 u checkUniformT y |
|||
: |
|||
freqtable=. /:~ (~. ,. #/.~) u n=. */y |
|||
errmsg=. 'Distribution is potentially skewed' |
|||
errmsg assert ((n % #) (x&*@[ > |@:-) {:"1) freqtable |
|||
freqtable |
freqtable |
||
) |
) |