Thread Euleresche Zahl Berechnen, mit vielen Nachkommastellen. (8 answers)
Opened by Gast at 2008-06-29 15:35

moritz
 2008-06-29 21:28
#111668 #111668
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
FoolAck+2008-06-29 18:53:08--
Was du mit "Ranges sind nicht überladbar" meinst, versteh ich nicht.
Könntest du das erläutern?
1. sehe ich hier keine Range. (Der Ausdruck $fakulty->copy()->bpow(-1) liefert ja exakt einen Wert zurück, und nicht irgendwie einen Wertebereich oder so...)
2. Was wird hier wo überladen?


2. Diverse Operatoren in den big*-Modulen.

1. In for $n (1..10) ist 1..10 ein Range.
bigint.pm (und vermutlich auch BigFloat und andere Mathe-Pakete) überladen Operatoren, um aus "normalen" Zahlen "große" zu machen. Da aber der Range-Operator nicht überladbar ist, ist im obigen Bespiel $n eine "gewöhnliche" Zahl, keine "große".

Beispiel mit bigint:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
use strict;
use warnings;
use bigint;

for (1e9..1e9){
    print $_ * $_, $/;
}
my $x = 1e9;
print $x * $x, $/;
__END__
1e+18
1000000000000000000


Obwohl die beiden Multiplikationen eigentlich das gleiche tun sollten, hat die erste normale Semantik und die zweite bignum-Semantik

View full thread Euleresche Zahl Berechnen, mit vielen Nachkommastellen.