Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Red []
- context [
- cases: copy []
- x: sum: probabilities: none
- set 'pick-random func [items /size num /init probs /local out][
- x: random 100%
- if init [
- probabilities: probs
- cases: copy []
- sum: 0%
- forall items [
- append cases compose/deep [
- x <= (sum: sum + probabilities/(index? items)) [(items/1)]
- ]
- ]
- cases: append/only copy [case] cases
- ]
- either size [out: copy [] loop num [x: random 100% insert out do cases] out][do cases]
- ]
- ]
- count-items: func [
- items [block!]
- /local item c out
- ][
- out: copy [] c: 0
- sort items
- forall items [
- either item = items/1 [
- c: c + 1
- if 1 = length? items [append out reduce [item c]]
- ][
- if item [append out reduce [item c]]
- item: items/1 c: 1
- ]
- ]
- out
- ]
Add Comment
Please, Sign In to add comment