http://en.wikipedia.org/wiki/Inclusion%E2%80%93exclusion_principle

A use of the related -/\ (-\ in APL) from 1981:
http://www.jsoftware.com/papers/eem/qq114.htm



----- Original Message -----
From: Marshall Lochbaum <mlochb...@raleighcharterhs.org>
Date: Monday, December 27, 2010 6:50
Subject: Re: [Jprogramming] finding number
To: 'Programming forum' <programming@jsoftware.com>

> 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-boun...@jsoftware.com [mailto:programming-
> boun...@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 <rhui...@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 <gos...@gmail.com>
> > Date: Sunday, December 26, 2010 11:48
> > Subject: [Jprogramming] finding number
> > To: Programming forum <programming@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

Reply via email to