Sent from my Verizon Wireless 4G LTE smartphone
<div>-------- Original message --------</div><div>From: Raul Miller
<rauldmil...@gmail.com> </div><div>Date:10/14/2014 10:04 AM (GMT-05:00)
</div><div>To: Programming forum <programm...@jsoftware.com>
</div><div>Subject: Re: [Jprogramming] Project Euler 85, Python and J
</div><div>
</div>Your approach looks very sensible. But I am curious about this result,
which is not what I expected:
bestmn 1e3
7 8 8 7
If I change the second to last line in bestmnv to read
i =. (i. <./) d
I get
bestmn 1e3
7 8
Are there cases where this would be a problem?
Thanks,
--
Raul
On Tue, Oct 14, 2014 at 5:39 AM, Mike Day <mike_liz....@tiscali.co.uk> wrote:
> OK - I've re-engineered a solution method which deals with
> required numbers several orders of magnitude higher than
> 2e6. I expect my original approach was the whole array
> approach as recently discussed, but I can't find it anywhere
> in my files.
>
> Apologies for any silly line-throws.
>
> The maths shows that the number of embedded rectangles
> in a grid of size (m,n) is tri(m)*tri(n) where tri is a triangular
> number, ie one in the series 0 1 3 6 10 15 ....
> tri(n) is n(n+1)%2
>
> It's easy to find which (m,m) most closely approximates the
> required number, req, by solving the quadratic
> m(m+1) = 2 sqrt(req)
>
> Let mmax = ceil(m)
>
> Also, for a given m, we can solve the quadratic
> n(n+1) = 4 req % m(m+1)
>
> In general, we get two integers bounding the non-
> integer solution, one of which will generally give
> a number of rectangles closer to the required
> value.
>
> Find the best pair (m,n) over m in [1,mmax]
>
> NB. Number of rectangles in mxn is tri(m)*tri(n)
>
> nrec =: *&(-:*>:)
>
>
> NB. best (m,n) over given vector m=y for target x
>
> bestmnv =: 3 : 0
>
> :
>
> req =. x [ m =. y
>
> NB. solve n(n+1)m(m+1) = 4*req
>
> NB. ie n^2 + n + 1-4.req/m(m+1) = 0
>
> NB. Get upper & lower integer bounds to each (usually) real solution
>
> n =. (<.,>.) _0.5 + %:_0.75 + 4*req% (*>:) m
>
> d =. (m=.m,m) (req |@-nrec) n NB. absolute errors
>
> i =. ((I.@(=(<./))@,)) d NB. index of least error
>
> m (,&(i&{) )n
>
> )
>
>
> NB. Find best m,n for required number of rectangles y
>
> bestmn =: 3 : 0
>
> req =. y
>
> NB. get maximum m, when n=m
>
> mmax=. >. _0.5 + %:_0.75 + 2*%:req NB. round up solution when m=n
>
> req bestmnv >:i.mmax
>
> )
>
>
> Here are a couple of targets suggested in the Project Euler discussion
> on this topic. The whole array approach discussed in the J forum would
>
> find them challenging.
>
>
> timer'bestmn x:<.9.87654321e19'
>
> +-----+------------+
>
> |5.628|20214 983262|
>
> +-----+------------+
>
> timer'bestmn 123456789123456789x'
>
> +--------+----------+
>
> |0.830002|7198 97621|
>
> +--------+----------+
>
>
> Thanks,
>
> Mike
>
>
>
>
> On 12/10/2014 11:30, Linda Alvord wrote:
>>
>> At the moment, I'm rooting for 54 by 54 as the answer!
>>
>> ff=: 13 :'(>:i.x) */>:i.y'
>> f=: 13 :'*/~ >:i.y'
>> (7 ff 7)-:f 7
>> good=: 13 :'}:1,x>+/\,y'
>> sum=: 13 :'+/(x good y)#, y'
>>
>> 400 < 400 sum 5 ff 5
>> 400 < 400 sum 6 ff 6
>> 400 < 400 sum 7 ff 7
>> 400 sum f 6
>> 400 sum f 7
>> 400 sum f 8
>> 6 ff 6
>> 400 sum 6 ff 6
>>
>> 2e6 < 2e6 sum 52 ff 52
>> 2e6 < 2e6 sum 53 ff 53
>> 2e6 < 2e6 sum 54 ff 54
>> 2e6 sum f 53
>> 2e6 sum f 54
>> 2e6 sum f 55
>> 2e6 sum 54 ff 54
>>
>> This stays in 2 dimensions.
>>
>> Linda
>>
>>
>> -----Original Message-----
>> From: programming-boun...@forums.jsoftware.com
>> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Raul Miller
>> Sent: Saturday, October 11, 2014 6:10 PM
>> To: Programming forum
>> Subject: Re: [Jprogramming] Project Euler 85, Python and J
>>
>> I understand that boxed index lists can be used to index multi-dimensioned
>> arrays. And that can be a convenient abstraction.
>>
>> However, I have been dealing with very large datasets recently, and boxed
>> data on the critical path, at least for some operations, becomes
>> prohibitively slow.
>>
>> When I can use regular numeric structures to replace irregular boxed
>> structures, the overall speedup from the representation change usually
>> more
>> than makes up for the cost of changing representation.
>>
>> Thanks,
>>
>
>
>
> ---
> This email is free from viruses and malware because avast! Antivirus
> protection is active.
> http://www.avast.com
>
>
>
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 2014.0.4765 / Virus Database: 4040/8386 - Release Date: 10/14/14
>
> ----------------------------------------------------------------------
> 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