Or:
gray2 =. [: (~: (_1 |.!.0"1 ])) 2&#.^:_1
gray3 =: #:@(22 b. _1&(33 b.))
Henry Rich
On 11/18/2013 5:10 AM, R.E. Boss wrote:
Replace gray by
gray=. [: -. [: (= (_1 |.!.0"1 ])) 2&#.^:_1
to allow large(r) Gray codes.
See solution 10 on http://www.jsoftware.com/jwiki/Puzzles/Gray%20Code
('0.4';'c12.0') (8!:2) ts' Gray i.524288' NB. 54288=2^19
0.0247 33,556,352
('0.4';'c12.0') (8!:2) ts' gray i.524288' NB. 54288=2^19
0.4365 293,615,616
('0.4';'c12.0') (8!:2) ts' #:([: ({: (({. * #@]) ,@:+ ($ (,: |.))) ((* #) ,@:+ # $ (,:
|.))^:({.`(0: , 1:))) ] (] , 2: ^ (- 2&^)) <.@(2&^.)@<:) 19'
0.0182 26,231,168
(gray i.524288)-: #:([: ({: (({. * #@]) ,@:+ ($ (,: |.))) ((* #) ,@:+ # $ (,:
|.))^:({.`(0: , 1:))) ] (] , 2: ^ (- 2&^)) <.@(2&^.)@<:) 19
1
(Gray i.524288)-: #:([: ({: (({. * #@]) ,@:+ ($ (,: |.))) ((* #) ,@:+ # $ (,:
|.))^:({.`(0: , 1:))) ] (] , 2: ^ (- 2&^)) <.@(2&^.)@<:) 19
1
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 Jose Mario Quintana
Sent: zondag 17 november 2013 22:28
To: Programming forum
Subject: Re: [Jprogramming] Sets
"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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm