Just makes sure that n is sufficiently large so that when you (}:1,6~:x)
<;.1 x=: 1+n ?@$ 6 there are at least m complete sets (where a set can not
end on a 6).


On Thu, Sep 25, 2014 at 10:54 AM, 'Pascal Jasmin' via Programming <
programm...@jsoftware.com> wrote:

> there's a small issue with it, (if last roll is a 6)
>
>    (}:1,6~:x) <;.1   x=. 6 1 6 6 2 3 6
> ┌───┬─────┬─┬─┐
> │6 1│6 6 2│3│6│
> └───┴─────┴─┴─┘
>
> if you've never seen a use for i.15 0 before,
>
>    ([: +/ (, >:@?@6:)^:((0=#) +. 6={:)^:_)"1 i.15 0
> 3 13 3 3 11 1 2 3 5 4 9 4 1 3 1
>
> or
>
>    (, >:@?@6:)^:((0=#) +. 6={:)^:_"1 i.15 0
> 1 0 0
> 2 0 0
> 6 2 0
> 5 0 0
> 5 0 0
> 1 0 0
> 5 0 0
> 1 0 0
> 2 0 0
> 2 0 0
> 4 0 0
> 6 6 5
> 6 2 0
> 6 1 0
> 2 0 0
>
>
>
> ----- Original Message -----
> From: Devon McCormick <devon...@gmail.com>
> To: J-programming forum <programm...@jsoftware.com>
> Cc:
> Sent: Thursday, September 25, 2014 1:40 PM
> Subject: Re: [Jprogramming] Repeated rolling dice
>
> This looks like a good addition to my growing set of "array-thinking"
> examples.
>
> On Thu, Sep 25, 2014 at 12:32 PM, Roger Hui <rogerhui.can...@gmail.com>
> wrote:
>
> > ​Compared to the other solutions posted so far, I believe it is more
> > straightforward to do a long sequence of dice rolls and then split it up
> > according to your specified criteria.  The split point are where the
> > _previous_ roll is _not_ a 6.  Thus:
> >
> > ​   x=: 1+1e4 ?@$ 6   NB. long sequence of dice rolls
> >    x
> > 5 4 6 1 5 4 5 6 1 3 5 1 2 3 3 6 5 2 4 5 6 5 5 3 6 2 4 4 1 3 6 4 2 1 5 6
> 1 6
> > 6 6 6 6 5 4 6 1 2 3 2 5 1 2 1 3 2 ...
> >    (}:1,6~:x) <;.1 x
> >
> >
> ┌─┬─┬───┬─┬─┬─┬───┬─┬─┬─┬─┬─┬─┬───┬─┬─┬─┬───┬─┬─┬───┬─┬─┬─┬─┬───┬─┬─┬─┬───┬───────────┬─┬───┬─┬─┬─┬─┬─┬─┬─┬─┬─┬
> > │5│4│6 1│5│4│5│6 1│3│5│1│2│3│3│6 5│2│4│5│6 5│5│3│6 2│4│4│1│3│6 4│2│1│5│6
> > 1│6 6 6 6 6 5│4│6 1│2│3│2│5│1│2│1│3│2│ ...
> >
> >
> └─┴─┴───┴─┴─┴─┴───┴─┴─┴─┴─┴─┴─┴───┴─┴─┴─┴───┴─┴─┴───┴─┴─┴─┴─┴───┴─┴─┴─┴───┴───────────┴─┴───┴─┴─┴─┴─┴─┴─┴─┴─┴─┴
> >
> >
> >
> >
> > On Thu, Sep 25, 2014 at 6:06 AM, Johann Hibschman <jhibsch...@gmail.com>
> > wrote:
> >
> > > Hi all,
> > >
> > > For fun, I've been running some statistics for a game with an unusual
> > > rule for rolling dice: if a 6 is rolled, roll again and add the
> > > result, repeating on any subsequent 6s. I wanted to implement this in
> > > J, collecting all the individual rolls (rather than just the sum.)
> > >
> > > It seems like there should be a more clever and elegant way to do
> > > this, but this is what I have:
> > >
> > > NB. Simple roll.
> > > roll0 =: >:@?
> > >
> > > NB. This seems to work, but it's not very clever.
> > > roll =: 3 : 0
> > >   r =. >:?y
> > >   if. r=y do. r=. r,(roll y) end.
> > >   r
> > > )
> > >
> > > NB. Attempt at iterating via power.  Fails because repeats
> > > NB. signal termination.
> > > roll0^:(6&=)^:(<_) 6
> > >
> > > NB. Attempt at iterating via agenda.  Not even close yet.
> > > NB. ]`(]+$:) @. (=&6)  NB. where to stick in the roll?
> > >
> > > This gives what I expect:
> > >
> > >    roll"0 ] 10#6
> > > 6 1 0
> > > 3 0 0
> > > 3 0 0
> > > 2 0 0
> > > 5 0 0
> > > 2 0 0
> > > 6 6 2
> > > 2 0 0
> > > 1 0 0
> > > 6 3 0
> > >
> > > But is there a better way to do this? Also, are there any known issues
> > > with the RNG? I've not gathered enough statistics to prove it, but the
> > > results look clumpier (more identical values in a row) than I expect.
> > > Now, I know that's a common cognitive bias, so it may just be me, but
> > > is there a discussion of the quality of the RNG somewhere?
> > >
> > > Thanks,
> > > Johann
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> > >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
>
>
>
> --
> Devon McCormick, CFA
>
>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to