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

Reply via email to