"Grey" and gray are related but they take different arguments and produce
different results.  However, we can compare Gray (derived from Grey) and
gray.  Gray is shorter than gray,

   ( gray=. [: -. [: (= (_1 |.!.0"1 ])) bin f. ) NB. Fixed
[: -. [: (= (_1 |.!.0"1 ])) 2 2 2 2&#:

   ( Gray=. #: @: (22 b. <.@:-:) )               NB. Fixed
#:@:(22 b. <.@:-:)

Gray and gray produce the same result for the given argument,

   (Gray -: gray) i.16
1

Gray is more efficient than gray,

   100 st'gray i.16'
┌────┬─────────────┐
│2112│4.55809702e_6│
└────┴─────────────┘
   100 st'Gray i.16'
┌────┬─────────────┐
│1408│3.12123995e_6│
└────┴─────────────┘

and it is more general,

   (Gray ; gray) i.32
┌─────────┬───────┐
│0 0 0 0 0│0 0 0 0│
│0 0 0 0 1│0 0 0 1│
│0 0 0 1 1│0 0 1 1│
│0 0 0 1 0│0 0 1 0│
│0 0 1 1 0│0 1 1 0│
│0 0 1 1 1│0 1 1 1│
│0 0 1 0 1│0 1 0 1│
│0 0 1 0 0│0 1 0 0│
│0 1 1 0 0│1 1 0 0│
│0 1 1 0 1│1 1 0 1│
│0 1 1 1 1│1 1 1 1│
│0 1 1 1 0│1 1 1 0│
│0 1 0 1 0│1 0 1 0│
│0 1 0 1 1│1 0 1 1│
│0 1 0 0 1│1 0 0 1│
│0 1 0 0 0│1 0 0 0│
│1 1 0 0 0│0 0 0 0│
│1 1 0 0 1│0 0 0 1│
│1 1 0 1 1│0 0 1 1│
│1 1 0 1 0│0 0 1 0│
│1 1 1 1 0│0 1 1 0│
│1 1 1 1 1│0 1 1 1│
│1 1 1 0 1│0 1 0 1│
│1 1 1 0 0│0 1 0 0│
│1 0 1 0 0│1 1 0 0│
│1 0 1 0 1│1 1 0 1│
│1 0 1 1 1│1 1 1 1│
│1 0 1 1 0│1 1 1 0│
│1 0 0 1 0│1 0 1 0│
│1 0 0 1 1│1 0 1 1│
│1 0 0 0 1│1 0 0 1│
│1 0 0 0 0│1 0 0 0│
└─────────┴───────┘


On Sun, Nov 17, 2013 at 2:53 PM, Bo Jacoby <[email protected]> wrote:

> This program for graycode may be simpler?
>
>    bin=.2 2 2 2&#:
>    gray=.[:-.[:(=_1|.!.0"1])bin
>    bin i.16
> 0 0 0 0
> 0 0 0 1
> 0 0 1 0
> 0 0 1 1
> 0 1 0 0
> 0 1 0 1
> 0 1 1 0
> 0 1 1 1
> 1 0 0 0
> 1 0 0 1
> 1 0 1 0
> 1 0 1 1
> 1 1 0 0
> 1 1 0 1
> 1 1 1 0
> 1 1 1 1
>    gray i.16
> 0 0 0 0
> 0 0 0 1
> 0 0 1 1
> 0 0 1 0
> 0 1 1 0
> 0 1 1 1
> 0 1 0 1
> 0 1 0 0
> 1 1 0 0
> 1 1 0 1
> 1 1 1 1
> 1 1 1 0
> 1 0 1 0
> 1 0 1 1
> 1 0 0 1
> 1 0 0 0
>
>
>
>
> Den 19:40 søndag den 17. november 2013 skrev Jose Mario Quintana <
> [email protected]>:
>
> Thanks for the assertion and the correction.  I knew it was named after a
> >person, hence the upper case G, but I am one of those that reads and
> writes
> >phonetically (if you know what I mean) and I could not see (hear) the
> >difference between Gray and grey.
> >
> >On Sun, Nov 17, 2013 at 12:06 PM, Henry Rich <[email protected]>
> wrote:
> >
> >> Oh - and it's Gray code, not Grey.  It's named not because you don't
> have
> >> black-to-white transitions on more than one bit at a time; it's named
> for
> >> Frank Gray.
> >>
> >>
> >> Henry Rich
> >>
> >> On 11/17/2013 11:24 AM, Jose Mario Quintana wrote:
> >>
> >>> My understanding is that Grey codes encode numbers in such a way that
> the
> >>> binary representation of consecutive numbers (including the last and
> first
> >>> couple) in the sequence can be produced, one from the other, by
> flipping
> >>> only one bit.
> >>> For example, the binary representation of a four bit Grey sequence, of
> 2^4
> >>> numbers, and the flipping bit to produce the next number follows,
> >>>
> >>>     o=. @:
> >>>     ( Grey=. (xor f. <. o -:) o i. o (2&^)) ( xor=. 22 b. )
> >>> (22 b. <.@:-:)@:i.@:(2&^) 22 b.
> >>>
> >>>     (#: ; (2 #: o (xor/\) ]) o (, {.)) o Grey 4
> >>> ┌───────┬───────┐
> >>> │0 0 0 0│0 0 0 1│
> >>> │0 0 0 1│0 0 1 0│
> >>> │0 0 1 1│0 0 0 1│
> >>> │0 0 1 0│0 1 0 0│
> >>> │0 1 1 0│0 0 0 1│
> >>> │0 1 1 1│0 0 1 0│
> >>> │0 1 0 1│0 0 0 1│
> >>> │0 1 0 0│1 0 0 0│
> >>> │1 1 0 0│0 0 0 1│
> >>> │1 1 0 1│0 0 1 0│
> >>> │1 1 1 1│0 0 0 1│
> >>> │1 1 1 0│0 1 0 0│
> >>> │1 0 1 0│0 0 0 1│
> >>> │1 0 1 1│0 0 1 0│
> >>> │1 0 0 1│0 0 0 1│
> >>> │1 0 0 0│1 0 0 0│
> >>> └───────┴───────┘
> >>>
> >>> However, flipping as many as three bits are sometimes required for the
> >>> referred sequence,
> >>>
> >>>     T=. 0 8 12 14 15 13 10 11 9 4 6 7 5 2 3 1
> >>>
> >>>     (#: ; (2 #: o (xor/\) ]) o (, {.)) T
> >>> ┌───────┬───────┐
> >>> │0 0 0 0│1 0 0 0│
> >>> │1 0 0 0│0 1 0 0│
> >>> │1 1 0 0│0 0 1 0│
> >>> │1 1 1 0│0 0 0 1│
> >>> │1 1 1 1│0 0 1 0│
> >>> │1 1 0 1│0 1 1 1│
> >>> │1 0 1 0│0 0 0 1│
> >>> │1 0 1 1│0 0 1 0│
> >>> │1 0 0 1│1 1 0 1│
> >>> │0 1 0 0│0 0 1 0│
> >>> │0 1 1 0│0 0 0 1│
> >>> │0 1 1 1│0 0 1 0│
> >>> │0 1 0 1│0 1 1 1│
> >>> │0 0 1 0│0 0 0 1│
> >>> │0 0 1 1│0 0 1 0│
> >>> │0 0 0 1│0 0 0 1│
> >>> └───────┴───────┘
> >>>
> >>> Am I missing something?
> >>>
> >>>
> >>>
> >>> On Fri, Nov 15, 2013 at 2:07 PM, R.E. Boss <[email protected]> wrote:
> >>>
> >>>  Actually, it IS a (4D binary reflected) Gray code.
> >>>>
> >>>>
> >>>> R.E. Boss
> >>>>
> >>>> (Add your info to
> http://www.jsoftware.com/jwiki/Community/Demographics)
> >>>>
> >>>>
> >>>>  -----Original Message-----
> >>>>> From: [email protected] [mailto:programming-
> >>>>> [email protected]] On Behalf Of Devon McCormick
> >>>>> Sent: vrijdag 15 november 2013 19:33
> >>>>> To: J-programming forum
> >>>>> Subject: Re: [Jprogramming] Sets
> >>>>>
> >>>>> These look like Gray codes.
> >>>>>
> >>>>> On Nov 14, 2013 10:04 PM, "Raul Miller" <[email protected]>
> wrote:
> >>>>>
> >>>>>>
> >>>>>> Easy enough to add.
> >>>>>>
> >>>>>> It's an interesting progression though:
> >>>>>>
> >>>>>>     #:/:&> (<@#~ 2 #:@i.@^ #)&.> set 2;'b';1;'a'
> >>>>>> 0 0 0 0
> >>>>>> 1 0 0 0
> >>>>>> 1 1 0 0
> >>>>>> 1 1 1 0
> >>>>>> 1 1 1 1
> >>>>>> 1 1 0 1
> >>>>>> 1 0 1 0
> >>>>>> 1 0 1 1
> >>>>>> 1 0 0 1
> >>>>>> 0 1 0 0
> >>>>>> 0 1 1 0
> >>>>>> 0 1 1 1
> >>>>>> 0 1 0 1
> >>>>>> 0 0 1 0
> >>>>>> 0 0 1 1
> >>>>>> 0 0 0 1
> >>>>>>
> >>>>>> --
> >>>>>> Raul
> >>>>>>
> >>>>>> On Thu, Nov 14, 2013 at 6:06 PM, km <[email protected]> wrote:
> >>>>>>
> >>>>>>> Cool; needs a sort.  --Kip
> >>>>>>>
> >>>>>>>
> >>>>>>>       psr=: (<@#~ 2 #:@i.@^ #)&.>  NB. Raul's
> >>>>>>>     psr set 0;1
> >>>>>>> +----------------+
> >>>>>>> |++---+---+-----+|
> >>>>>>> |||+-+|+-+|+-+-+||
> >>>>>>> ||||1|||0|||0|1|||
> >>>>>>> |||+-+|+-+|+-+-+||
> >>>>>>> |++---+---+-----+|
> >>>>>>> +----------------+
> >>>>>>>     ps set 0;1  NB. list inside box is sorted
> >>>>>>> +----------------+
> >>>>>>> |++---+-----+---+|
> >>>>>>> |||+-+|+-+-+|+-+||
> >>>>>>> ||||0|||0|1|||1|||
> >>>>>>> |||+-+|+-+-+|+-+||
> >>>>>>> |++---+-----+---+|
> >>>>>>> +----------------+
> >>>>>>>
> >>>>>>> Sent from my iPad
> >>>>>>>
> >>>>>>>  On Nov 14, 2013, at 3:17 PM, Raul Miller <[email protected]>
> >>>>>>>>
> >>>>>>> wrote:
> >>>>>
> >>>>>>
> >>>>>>>> Derived from ps at http://rosettacode.org/wiki/Power_set#J
> >>>>>>>>
> >>>>>>>>    ps=: (<@#~ 2 #:@i.@^ #)&.>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Raul
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>  On Thu, Nov 14, 2013 at 3:17 PM, km <[email protected]> wrote:
> >>>>>>>>> Here is my latest attempt at sets in J.  Would anyone care to
> write
> >>>>>>>>>
> >>>>>>>> a
> >>>>
> >>>>> verb ps (power set) such that ps y is the set of all subsets of set
> y?
> >>>>>   It's called the power set in part because when a set has n elements
> >>>>> its
> >>>>> power set has 2^n elements.  --Kip Murray
> >>>>>
> >>>>>>
> >>>>>>>>>    NB. A set is a box with a sorted list of boxes inside.
> >>>>>>>>>    NB. An element is the contents of a box in the list.
> >>>>>>>>>    NB. A -: B tests whether set A is set B.
> >>>>>>>>>
> >>>>>>>>>    set =: [: < [: /:~ ~.  NB. create set from list of boxes
> >>>>>>>>>
> >>>>>>>>>    NB. The list may have duplicates but the set has none.
> >>>>>>>>>
> >>>>>>>>>    EE =: <$0  NB. empty set, same as Ace a:
> >>>>>>>>>
> >>>>>>>>>    eo =: <@[ e. >@] NB. test whether x is an element of y
> >>>>>>>>>
> >>>>>>>>>    uu =: [: set ,&>  NB. union
> >>>>>>>>>
> >>>>>>>>>    mm =: [: < -.&> NB. minus
> >>>>>>>>>
> >>>>>>>>>    sd =: mm uu mm~  NB. symmetric difference
> >>>>>>>>>
> >>>>>>>>>    cp =: uu mm sd  NB. common part (intersection)
> >>>>>>>>>
> >>>>>>>>>    ss =: uu -: ]  NB. test whether x is a subset of y
> >>>>>>>>>
> >>>>>>>>>    (set 1;2;3;3) -: set 3;1;2
> >>>>>>>>> 1
> >>>>>>>>>
> >>>>>>>>>    ]A =: set 2;'b';1;'a'
> >>>>>>>>> +---------+
> >>>>>>>>> |+-+-+-+-+|
> >>>>>>>>> ||1|2|a|b||
> >>>>>>>>> |+-+-+-+-+|
> >>>>>>>>> +---------+
> >>>>>>>>>
> >>>>>>>>>    ]B =: set 'b';'a';4;3;'a'
> >>>>>>>>> +---------+
> >>>>>>>>> |+-+-+-+-+|
> >>>>>>>>> ||3|4|a|b||
> >>>>>>>>> |+-+-+-+-+|
> >>>>>>>>> +---------+
> >>>>>>>>>
> >>>>>>>>>    A uu B
> >>>>>>>>> +-------------+
> >>>>>>>>> |+-+-+-+-+-+-+|
> >>>>>>>>> ||1|2|3|4|a|b||
> >>>>>>>>> |+-+-+-+-+-+-+|
> >>>>>>>>> +-------------+
> >>>>>>>>>
> >>>>>>>>>    A sd B
> >>>>>>>>> +---------+
> >>>>>>>>> |+-+-+-+-+|
> >>>>>>>>> ||1|2|3|4||
> >>>>>>>>> |+-+-+-+-+|
> >>>>>>>>> +---------+
> >>>>>>>>>
> >>>>>>>>>    A cp B
> >>>>>>>>> +-----+
> >>>>>>>>> |+-+-+|
> >>>>>>>>> ||a|b||
> >>>>>>>>> |+-+-+|
> >>>>>>>>> +-----+
> >>>>>>>>>
> >>>>>>>>>    NB. Below is the set of all subsets of set 0;1
> >>>>>>>>>
> >>>>>>>>>    set EE;(set <0);(set <1);<set 0;1
> >>>>>>>>> +------------------------+
> >>>>>>>>> |+--+-----+-------+-----+|
> >>>>>>>>> ||++|+---+|+-----+|+---+||
> >>>>>>>>> ||||||+-+|||+-+-+|||+-+|||
> >>>>>>>>> ||++|||0|||||0|1|||||1||||
> >>>>>>>>> ||  ||+-+|||+-+-+|||+-+|||
> >>>>>>>>> ||  |+---+|+-----+|+---+||
> >>>>>>>>> |+--+-----+-------+-----+|
> >>>>>>>>> +------------------------+
> >>>>>>>>>
> >>>>>>>>> Sent from my iPad
> >>>>>>>>>
> >>>>>>>>>  ------------------------------------------------------------
> >>>> ----------
> >>>>
> >>>>>  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
> >>>>>
> >>>>>>
> ----------------------------------------------------------------------
> >>>>>> 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
> >>>>
> >>>>
> ----------------------------------------------------------------------
> >>> 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
> >
> >
> ----------------------------------------------------------------------
> 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