Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,51 +0,0 @@
|
|||
with Ada.Text_IO; with Ada.Numerics.Discrete_Random;
|
||||
|
||||
procedure Bias_Unbias is
|
||||
|
||||
Modulus: constant Integer := 60; -- lcm of {3,4,5,6}
|
||||
type M is mod Modulus;
|
||||
package Rand is new Ada.Numerics.Discrete_Random(M);
|
||||
Gen: Rand.Generator;
|
||||
|
||||
subtype Bit is Integer range 0 .. 1;
|
||||
|
||||
function Biased_Bit(Bias_Base: Integer) return Bit is
|
||||
begin
|
||||
if (Integer(Rand.Random(Gen))* Bias_Base) / Modulus > 0 then
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
end if;
|
||||
end Biased_Bit;
|
||||
|
||||
function Unbiased_Bit(Bias_Base: Integer) return Bit is
|
||||
A, B: Bit := 0;
|
||||
begin
|
||||
while A = B loop
|
||||
A := Biased_Bit(Bias_Base);
|
||||
B := Biased_Bit(Bias_Base);
|
||||
end loop;
|
||||
return A;
|
||||
end Unbiased_Bit;
|
||||
|
||||
package FIO is new Ada.Text_IO.Float_IO(Float);
|
||||
|
||||
Counter_B, Counter_U: Natural;
|
||||
Number_Of_Samples: constant Natural := 10_000;
|
||||
|
||||
begin
|
||||
Rand.Reset(Gen);
|
||||
Ada.Text_IO.Put_Line(" I Biased% UnBiased%");
|
||||
for I in 3 .. 6 loop
|
||||
Counter_B := 0;
|
||||
Counter_U := 0;
|
||||
for J in 1 .. Number_Of_Samples loop
|
||||
Counter_B := Counter_B + Biased_Bit(I);
|
||||
Counter_U := Counter_U + Unbiased_Bit(I);
|
||||
end loop;
|
||||
Ada.Text_IO.Put(Integer'Image(I));
|
||||
FIO.Put(100.0 * Float(Counter_B) / Float(Number_Of_Samples), 5, 2, 0);
|
||||
FIO.Put(100.0 * Float(Counter_U) / Float(Number_Of_Samples), 5, 2, 0);
|
||||
Ada.Text_IO.New_Line;
|
||||
end loop;
|
||||
end Bias_Unbias;
|
||||
|
|
@ -3,7 +3,7 @@ import extensions;
|
|||
extension op : IntNumber
|
||||
{
|
||||
bool randN()
|
||||
= randomGenerator.nextInt(self) == 0;
|
||||
= Random.nextInt(self) == 0;
|
||||
|
||||
get bool Unbiased()
|
||||
{
|
||||
|
|
@ -20,7 +20,7 @@ extension op : IntNumber
|
|||
}
|
||||
}
|
||||
|
||||
public program()
|
||||
public Program()
|
||||
{
|
||||
for(int n := 3; n <= 6; n += 1)
|
||||
{
|
||||
|
|
@ -35,7 +35,7 @@ public program()
|
|||
if(n.Unbiased) { unbiasedOne += 1 } else { unbiasedZero += 1 }
|
||||
};
|
||||
|
||||
console
|
||||
Console
|
||||
.printLineFormatted("(N = {0}):".padRight(17) + "# of 0"$9"# of 1"$9"% of 0"$9"% of 1", n)
|
||||
.printLineFormatted("Biased:".padRight(15) + "{0}"$9"{1}"$9"{2}"$9"{3}",
|
||||
biasedZero, biasedOne, biasedZero / 1000, biasedOne / 1000)
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
function randN(integer N)
|
||||
return rand(N) = 1
|
||||
end function
|
||||
|
||||
function unbiased(integer N)
|
||||
integer a
|
||||
while 1 do
|
||||
a = randN(N)
|
||||
if a != randN(N) then
|
||||
return a
|
||||
end if
|
||||
end while
|
||||
end function
|
||||
|
||||
constant n = 10000
|
||||
integer cb, cu
|
||||
for b = 3 to 6 do
|
||||
cb = 0
|
||||
cu = 0
|
||||
for i = 1 to n do
|
||||
cb += randN(b)
|
||||
cu += unbiased(b)
|
||||
end for
|
||||
printf(1, "%d: %5.2f%% %5.2f%%\n", {b, 100 * cb / n, 100 * cu / n})
|
||||
end for
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
function randN ( [int]$N )
|
||||
{
|
||||
[int]( ( Get-Random -Maximum $N ) -eq 0 )
|
||||
}
|
||||
|
||||
function unbiased ( [int]$N )
|
||||
{
|
||||
do {
|
||||
$X = randN $N
|
||||
$Y = randN $N
|
||||
}
|
||||
While ( $X -eq $Y )
|
||||
|
||||
return $X
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
$Tests = 1000
|
||||
ForEach ( $N in 3..6 )
|
||||
{
|
||||
$Biased = 0
|
||||
$Unbiased = 0
|
||||
|
||||
ForEach ( $Test in 1..$Tests )
|
||||
{
|
||||
$Biased += randN $N
|
||||
$Unbiased += unbiased $N
|
||||
}
|
||||
[pscustomobject]@{ N = $N
|
||||
"Biased Ones out of $Test" = $Biased
|
||||
"Unbiased Ones out of $Test" = $Unbiased }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue