[Date Prev][Date Next][Thread Prev][Thread Next]
[Search]
[Date Index]
[Thread Index]
Re: [FWP] fun with numbers
- To: Perl lover <perl@antionline.org>
- Subject: Re: [FWP] fun with numbers
- From: Michael G Schwern <schwern@pobox.com>
- Date: Tue, 18 Jul 2000 23:48:48 -0400
- Cc: fwp@technofile.org
- Content-Disposition: inline
- In-Reply-To: <200006070653.XAA15670@mail5.bigmailbox.com>; from perl@antionline.org on Tue, Jun 06, 2000 at 11:53:06PM -0700
- References: <200006070653.XAA15670@mail5.bigmailbox.com>
So I'm a little late, but this message inspired me to get Tie::Math
working with multivariable equations (AND IT WASN'T EASY!) So this
isn't exactly short, but I think its fun.
Note, Tie::Math only works under 5.6.0 because of the lexical subroutines.
use Tie::Math qw(f X Y);
my %pascal;
tie %pascal, 'Tie::Math', sub {
if( X <= Y and Y > 0 and X > 0 ) {
f(X,Y) = f(X-1,Y-1) + f(X,Y-1);
}
else {
f(X,Y) = 0;
}
},
sub {
f(1,1) = 1; f(1,2) = 1; f(2,2) = 1;
};
my $height = 13;
for my $y (1..$height) {
print " " x ($height - $y);
for my $x (1..$y) {
printf " % 4d ", $pascal{$x,$y};
}
print "\n";
}
Unfortunately, the if/else statement to bound the equation bothers me
deeply, since I intended Tie::Math to be familiar to mathematical
types and avoid any programming logic. I'm working on a bounding
conditions so one can say something natural.
On Tue, Jun 06, 2000 at 11:53:06PM -0700, Perl lover wrote:
> write a program as short as possible(i made one, less than 70
> characters) to print numbers derived from (x+y) ** n (n is 1 to 14)
> in the following format:
>
> 1
> 1 1
> 1 2 1
> 1 3 3 1
> 1 4 6 4 1
> 1 5 10 10 5 1
> 1 6 15 20 15 6 1
> 1 7 21 35 35 21 7 1
> 1 8 28 56 70 56 28 8 1
> 1 9 36 84 126 126 84 36 9 1
> 1 10 45 120 210 252 210 120 45 10 1
> 1 11 55 165 330 462 462 330 165 55 11 1
> 1 12 66 220 495 792 924 792 495 220 66 12 1
> 1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
> 1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1
--
Michael G Schwern http://www.pobox.com/~schwern/ schwern@pobox.com
At the doctor's office
Winter wheat and water mix
I walk funny now.
-- ignatz
==== Want to unsubscribe from Fun With Perl? Well, if you insist...
==== Send email to <fwp-request@technofile.org> with message _body_
==== unsubscribe