find=: 13 :'(+/(y>x^i.21))#x'
find
[ #~ [: +/ ] > (i.20) ^~ [
2 find 10000
2 2 2 2 2 2 2 2 2 2 2 2 2 2
$2 find 10000
14
$3 find 10000
3 3 3 3 3 3 3 3 3
$3 find 10000
9
4 find 10000
4 4 4 4 4 4 4
$4 find 10000
7
4^7
16384
3^9
19683
2^20
1.04858e6
This should handle cases up to one million. The left argument is the base
and the right is the maximum number you need convert to the given base.
All bets are off if you have something like 24 60 60 for minutes to days 24
60 60 .
If I were creating a contest and I could get this far I would include the
concept because I could cobble together an answer. Another day I may do the
same exercise a totally different way. Usually it tends to encourage even
better ways for accomplishing the task. I tend to stay away from remembering
useful code and try to approach the problem anew. I have the luxury of not
having my living dependent upon never having the code break or have it have
some unintended consequences.
Linda
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Kip Murray
Sent: Saturday, December 10, 2011 10:07 AM
To: Programming forum
Subject: Re: [Jprogramming] How #: should have been designed
Linda, you may want to look up two's-compliment arithmetic, see
http://en.wikipedia.org/wiki/Two's_complement
Your idea in hcla is nice. Can you figure out a way to calculate the
number of 2's required for the left argument? For example you would
need four 2's for
(2 2 2 2 hcla i: 5) -: hc i: 5
1
On 12/10/2011 3:56 AM, Linda Alvord wrote:
> Kip, Is this what you are looking for:
>
>
> hcla=: 13 :'x#:y'
> ]d=:2 2 2 hcla i:2
> 1 1 0
> 1 1 1
> 0 0 0
> 0 0 1
> 0 1 0
>
> hcinvla=:hcla^:_1 hcla
> hcinvla d
> |length error: hcinvla
> | hcinvla d
>
> hcla
> #:
> hcinvJ=:#:^:_1
> hcinvJ
> #:^:_1
>
> hcinvJ d
> 6 7 0 1 2
>
> hcinvla
> #.
> hcinvla=: 13 :'#.y'
> hcinvla d
> 6 7 0 1 2
>
> Raul's new improved answer hc doesn't appear to deal with the negative
> values. My inverse does the best it can with the data it gets.
>
> My code is mostly from the dictionary. I'm not sure what would be the best
> way to deal with negative binary numbers. Maybe I'll remember something
> about that a little later.
>
> Linda
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Kip Murray
> Sent: Saturday, December 10, 2011 1:02 AM
> To: Programming forum
> Subject: Re: [Jprogramming] How #: should have been designed
>
> Now we need an inverse for Raul's improved #: ("hash colon")
>
> hc NB. Raul's improved #:
> {.@#:@(,: (2 * |))
>
> hc i: 2
> 1 1 0
> 1 1 1
> 0 0 0
> 0 0 1
> 0 1 0
>
> hcinv NB. improvement sought
> 2&#.`(2&#.@}. - 2 ^<:@#)@.{."1
>
> hcinv hc i: 2
> _2 _1 0 1 2
>
> On 12/8/2011 2:41 PM, Raul Miller wrote:
> ...
> But this would work just as well, as a model:
>
> {.@#:@(,: 2 * |)i:2
> 1 1 0
> 1 1 1
> 0 0 0
> 0 0 1
> 0 1 0
> ----------------------------------------------------------------------
> 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