⎕pw←1000

      df
  Freq  ╔═══════════════════════╗
        ║z←Freq m;c             ║
        ║z←⌈/,m                 ║
        ║c←z⍴0                  ║
        ║⊣ {c[⍵]←c[⍵]+1}⍤0 ⊢ m  ║
        ║z←⍉(2,z)⍴(⍳z),c        ║
        ╚═══════════════════════╝
  Loto  ╔════════════════════════════════════════════╗
        ║z←n Loto x;y;⎕io                            ║
        ║⎕io←1 ◊(x y)←x                              ║
        ║z←{⍵[⍋⍵;]} {(⊂⍋⍵)⌷⍵}⍤1 ⊢ {x?y⊣⍵}⍤1 ⊢ (n,x)⍴0║
        ╚════════════════════════════════════════════╝
  Randomize  ╔═══════════════════════════╗
             ║Randomize ;fd              ║
             ║fd ← ⎕fio[3] '/dev/urandom'║
             ║⎕rl←(7⍴256)⊥7 ⎕fio[41] fd  ║
             ║⊣ ⎕fio[4] fd               ║
             ╚═══════════════════════════╝
  time  ╔══════════════════════╗
        ║z←time cmd;start;stop ║
        ║start←⎕fio ¯1         ║
        ║⊣ ⍎cmd                ║
        ║stop←⎕fio ¯1          ║
        ║z←(stop-start)÷⎕fio ¯2║
        ╚══════════════════════╝
      time 'r←10000 Loto 6 49'
9.009529247
      time 'r←Freq 10000 Loto 6 49'
40.7652658

      ⍝ I did it for 1,000,000 and pretty sure got the result within 2 minutes 
*before* *macros*.


my 2 more cents,

Xtian.

Reply via email to