Thread RDW 2007/8 -- Aprilscherz
(29 answers)
Opened by Ishka at 2007-04-01 15:41 Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/usr/bin/perl use strict; use warnings; use Benchmark ':all'; my $n = 19229024324098347987343; $n += 0.0; print 'AND: '.(($n&1) ? 'ungerade' : 'gerade')."\n"; print 'MODULO: '.(($n%2) ? 'ungerade' : 'gerade')."\n"; sub and_test { return($_[0]&1) } sub modulo_test { return($_[0]%2) } cmpthese (2000000, { and_test => sub { &and_test($n) }, modulo_test => sub { &modulo_test($n) } } ); Output: Quote Mein Vorredner hat meinen Code ja schon verteidigt :) ..ausserdem: "modulo" funktioniert irgendwo zwischen 2^51 und 2^52 nicht mehr ohne Zusatzmodule richtig, "and" schon .. ^^ ..wie man an den unterschiedlichen Ergebnissen sehen kann. Achja, der Geschwindigkeitsunterschied zwischen And und Modulo wächst mit der Grösse der Zahl; Modulo wird immer langsamer.\n\n <!--EDIT|GoodFella|1175540884--> |