Guest User

Untitled

a guest
Oct 21st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. Red []
  2. context [
  3. cases: copy []
  4. x: sum: probabilities: none
  5. set 'pick-random func [items /size num /init probs /local out][
  6. x: random 100%
  7. if init [
  8. probabilities: probs
  9. cases: copy []
  10. sum: 0%
  11. forall items [
  12. append cases compose/deep [
  13. x <= (sum: sum + probabilities/(index? items)) [(items/1)]
  14. ]
  15. ]
  16. cases: append/only copy [case] cases
  17. ]
  18. either size [out: copy [] loop num [x: random 100% insert out do cases] out][do cases]
  19. ]
  20. ]
  21. count-items: func [
  22. items [block!]
  23. /local item c out
  24. ][
  25. out: copy [] c: 0
  26. sort items
  27. forall items [
  28. either item = items/1 [
  29. c: c + 1
  30. if 1 = length? items [append out reduce [item c]]
  31. ][
  32. if item [append out reduce [item c]]
  33. item: items/1 c: 1
  34. ]
  35. ]
  36. out
  37. ]
Add Comment
Please, Sign In to add comment