base: radix economy for 3 different maximums
authorMischa POSLAWSKY <perl@shiar.org>
Tue, 29 Jan 2013 00:20:52 +0000 (01:20 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Fri, 19 Apr 2013 15:10:15 +0000 (17:10 +0200)
base.plp

index f34f36e8580a4a25f00567040bdd381f1a99d993..7d31a4dbaf79094b29f44c94aa7f82856ba1fdf8 100644 (file)
--- a/base.plp
+++ b/base.plp
@@ -18,6 +18,26 @@ my @char = (0..9, 'A'..'Z', 'a'..'z');
 :>
 <h1>Number bases</h1>
 
 :>
 <h1>Number bases</h1>
 
+<h2>Radix economy</h2>
+<table>
+<:
+sub radix_economy {
+       my ($val, $radix) = @_;
+       return $radix * int(log($val) / log($radix) + 1);
+}
+
+use List::Util 'sum';
+print '<tr><th>';
+print '<th>', $_ for @morecols;
+for my $max (100, 255, 1024) {
+       print '<tr><th>', $max;
+       for my $radix (@morecols) {
+               printf '<td style="text-align:right">%.1f',
+                       sum(map { radix_economy($_, $radix) } 1 .. $max) / $max;
+       }
+}
+:></table>
+
 <h2>Fractions</h2>
 <table>
 <:
 <h2>Fractions</h2>
 <table>
 <: