[Jprogramming] finding number
Marshall Lochbaum
mlochbaum at raleighcharterhs.org
Mon Dec 27 22:49:10 HKT 2010
This is a very nice bit of math!
The idea is that we subtract the number of numbers that are either second or third powers, but if we just do this directly, we double-count sixth powers (which are both). Therefore we add back in the sixth powers.
-/ accomplishes this quite nicely by adding the two even-indexed numbers (2 and 3) and subtracting 6 .
The reason (g3a 75) is 86 is because it fails to count the perfect square (ie. 81) in between 75 and 87, thus coming up one short. I recommend for this method using
g3=: (+ -/@:>.@:(2 6 3&%:))^:_~
which repeatedly takes the value to be added from its current guess rather than the initial number. It will always come up with the lowest inverse of f .
Marshall
-----Original Message-----
From: programming-bounces at jsoftware.com [mailto:programming-bounces at jsoftware.com] On Behalf Of Björn Helgason
Sent: Monday, December 27, 2010 9:27 AM
To: Programming forum
Subject: Re: [Jprogramming] finding number
As usual you have a way of coming up with something brilliant that takes some time for me to understand.
I get it with the perfect squares and perfect cubes because that is what I was originally after but what has the perfect 6-th power to do with this?
And by the way g3a gives me 86 and not 87
f3 =: - -/@:>.@:(2 6 3&%:)
f3 87
75
g3a=: + -/@:>.@:(2 6 3&%:)
g3a 75
86
2010/12/27 Roger Hui <rhui000 at shaw.ca>
> A fast inverse for f derives by observing that f is equivalent to:
>
> f3 =: - -/@:>.@:(2 6 3&%:)
>
> That is, f3 n is n less the perfect squares and perfect cubes bounded
> by n, plus the perfect 6-th powers. The function g3a then is very
> near to the inverse to f3 :
>
> g3a=: + -/@:>.@:(2 6 3&%:)
>
> For example:
>
> f3 1e9
> 999967409
> g3a 999967409
> 1000000000
>
> However:
> g3a 112
> 125
> f3 125
> 111
>
> The details of deriving g3, the inverse for f3, are left as an
> exercise for the reader.
>
>
>
> ----- Original Message -----
> From: Björn Helgason <gosinn at gmail.com>
> Date: Sunday, December 26, 2010 11:48
> Subject: [Jprogramming] finding number
> To: Programming forum <programming at jsoftware.com>
>
> > I have a small task that looks like this
> >
> > f=: [: # i. -. (2 ^~ i.) , 3 ^~ i.
> > f 87
> > 75
> >
> > I want to use tacit to find what number gives me 75 numbers (the
> > answerbeing 87)
> >
> > Could be asking what argument y do I need to find x numbers
> > according to the formula above
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
--
Björn Helgason, Verkfræðingur
Fornustekkum II
781 Hornafirði,
t-póst: gosinn at gmail.com
gsm: +3546985532
sími: +3544781286
http://groups.google.com/group/J-Programming
Tæknikunnátta höndlar hið flókna, sköpunargáfa er meistari einfaldleikans
góður kennari getur stigið á tær án þess að glansinn fari af skónum
/|_ .-----------------------------------.
,' .\ / | Með léttri lund verður |
,--' _,' | Dagurinn í dag |
/ / | Enn betri en gærdagurinn |
( -. | `-----------------------------------'
| ) | (\_ _/)
(`-. '--.) (='.'=) ♖♘♗♕♔♙
`. )----' (")_(") ☃☠
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
More information about the Programming
mailing list