Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,23 +0,0 @@
|
|||
with Ada.Numerics; use Ada.Numerics;
|
||||
with Ada.Numerics.Float_Random; use Ada.Numerics.Float_Random;
|
||||
with Ada.Numerics.Elementary_Functions; use Ada.Numerics.Elementary_Functions;
|
||||
|
||||
procedure Normal_Random is
|
||||
function Normal_Distribution
|
||||
( Seed : Generator;
|
||||
Mu : Float := 1.0;
|
||||
Sigma : Float := 0.5
|
||||
) return Float is
|
||||
begin
|
||||
return
|
||||
Mu + (Sigma * Sqrt (-2.0 * Log (Random (Seed), 10.0)) * Cos (2.0 * Pi * Random (Seed)));
|
||||
end Normal_Distribution;
|
||||
|
||||
Seed : Generator;
|
||||
Distribution : array (1..1_000) of Float;
|
||||
begin
|
||||
Reset (Seed);
|
||||
for I in Distribution'Range loop
|
||||
Distribution (I) := Normal_Distribution (Seed);
|
||||
end loop;
|
||||
end Normal_Random;
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. RANDOM.
|
||||
AUTHOR. Bill Gunshannon
|
||||
INSTALLATION. Home.
|
||||
DATE-WRITTEN. 14 January 2022.
|
||||
************************************************************
|
||||
** Program Abstract:
|
||||
** Able to get the Mean to be really close to 1.0 but
|
||||
** couldn't get the Standard Deviation any closer than
|
||||
** .3 to .4.
|
||||
************************************************************
|
||||
|
||||
DATA DIVISION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
|
||||
01 Sample-Size PIC 9(5) VALUE 1000.
|
||||
01 Total PIC 9(10)V9(5) VALUE 0.0.
|
||||
01 Arith-Mean PIC 999V999 VALUE 0.0.
|
||||
01 Std-Dev PIC 999V999 VALUE 0.0.
|
||||
01 Seed PIC 999V999.
|
||||
01 TI PIC 9(8).
|
||||
|
||||
01 Idx PIC 99999 VALUE 0.
|
||||
01 Intermediate PIC 9(10)V9(5) VALUE 0.0.
|
||||
01 Rnd-Work.
|
||||
05 Rnd-Tbl
|
||||
OCCURS 1 TO 99999 TIMES DEPENDING ON Sample-Size.
|
||||
10 Rnd PIC 9V9999999 VALUE 0.0.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
|
||||
Main-Program.
|
||||
ACCEPT TI FROM TIME.
|
||||
MOVE FUNCTION RANDOM(TI) TO Seed.
|
||||
PERFORM WITH TEST AFTER VARYING Idx
|
||||
FROM 1 BY 1
|
||||
UNTIL Idx = Sample-Size
|
||||
COMPUTE Intermediate =
|
||||
(FUNCTION RANDOM() * 2.01)
|
||||
MOVE Intermediate TO Rnd(Idx)
|
||||
END-PERFORM.
|
||||
PERFORM WITH TEST AFTER VARYING Idx
|
||||
FROM 1 BY 1
|
||||
UNTIL Idx = Sample-Size
|
||||
COMPUTE Total = Total + Rnd(Idx)
|
||||
END-PERFORM.
|
||||
|
||||
|
||||
COMPUTE Arith-Mean = Total / Sample-Size.
|
||||
DISPLAY "Mean: " Arith-Mean.
|
||||
|
||||
|
||||
PERFORM WITH TEST AFTER VARYING Idx
|
||||
FROM 1 BY 1
|
||||
UNTIL Idx = Sample-Size
|
||||
COMPUTE Intermediate =
|
||||
Intermediate + (Rnd(Idx) - Arith-Mean) ** 2
|
||||
END-PERFORM.
|
||||
COMPUTE Std-Dev = Intermediate / Sample-Size.
|
||||
|
||||
|
||||
DISPLAY "Std-Dev: " Std-Dev.
|
||||
|
||||
STOP RUN.
|
||||
|
||||
END PROGRAM RANDOM.
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
func logn n .
|
||||
return log n 0
|
||||
.
|
||||
numfmt 0 5
|
||||
e = 2.7182818284590452354
|
||||
for i = 1 to 1000
|
||||
a[] &= 1 + 0.5 * sqrt (-2 * log10 randomf / log10 e) * cos (360 * randomf)
|
||||
a[] &= 1 + 0.5 * sqrt (-2 * logn randomf) * cos (360 * randomf)
|
||||
.
|
||||
for v in a[]
|
||||
avg += v / len a[]
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ import extensions'math;
|
|||
|
||||
randomNormal()
|
||||
{
|
||||
^ cos(2 * Pi_value * randomGenerator.nextReal())
|
||||
* sqrt(-2 * ln(randomGenerator.nextReal()))
|
||||
^ cos(2 * Pi_value * Random.nextReal())
|
||||
* sqrt(-2 * ln(Random.nextReal()))
|
||||
}
|
||||
|
||||
public program()
|
||||
|
|
@ -19,7 +19,7 @@ public program()
|
|||
};
|
||||
|
||||
tAvg /= a.Length;
|
||||
console.printLine("Average: ", tAvg);
|
||||
Console.printLine("Average: ", tAvg);
|
||||
|
||||
real s := 0;
|
||||
for (int x := 0; x < a.Length; x += 1)
|
||||
|
|
@ -29,7 +29,7 @@ public program()
|
|||
|
||||
s := sqrt(s / 1000);
|
||||
|
||||
console.printLine("Standard Deviation: ", s);
|
||||
Console.printLine("Standard Deviation: ", s);
|
||||
|
||||
console.readChar()
|
||||
Console.readChar()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
include misc.e
|
||||
|
||||
function RandomNormal()
|
||||
atom x1, x2
|
||||
x1 = rand(999999) / 1000000
|
||||
x2 = rand(999999) / 1000000
|
||||
return sqrt(-2*log(x1)) * cos(2*PI*x2)
|
||||
end function
|
||||
|
||||
constant n = 1000
|
||||
sequence s
|
||||
s = repeat(0,n)
|
||||
for i = 1 to n do
|
||||
s[i] = 1 + 0.5 * RandomNormal()
|
||||
end for
|
||||
|
|
@ -1,10 +1,12 @@
|
|||
-->
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">RandomNormal</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #7060A8;">sqrt</span><span style="color: #0000FF;">(-</span><span style="color: #000000;">2</span><span style="color: #0000FF;">*</span><span style="color: #7060A8;">log</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">rnd</span><span style="color: #0000FF;">()))</span> <span style="color: #0000FF;">*</span> <span style="color: #7060A8;">cos</span><span style="color: #0000FF;">(</span><span style="color: #000000;">2</span><span style="color: #0000FF;">*</span><span style="color: #000000;">PI</span><span style="color: #0000FF;">*</span><span style="color: #7060A8;">rnd</span><span style="color: #0000FF;">())</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
with javascript_semantics
|
||||
requires("1.0.6") -- std_dev
|
||||
function random_normal()
|
||||
return sqrt(-2*log(rnd())) * cos(2*PI*rnd())
|
||||
end function
|
||||
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1000</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">s</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">0.5</span> <span style="color: #0000FF;">*</span> <span style="color: #000000;">RandomNormal</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<!--
|
||||
sequence s = repeat(0,1000)
|
||||
for i=1 to length(s) do
|
||||
s[i] = 1 + 0.5 * random_normal()
|
||||
end for
|
||||
|
||||
printf(1,"mean: %g, std dev: %g\n",{average(s),std_dev(s)})
|
||||
|
|
|
|||
|
|
@ -1,35 +0,0 @@
|
|||
function Get-RandomNormal
|
||||
{
|
||||
[CmdletBinding()]
|
||||
Param ( [double]$Mean, [double]$StandardDeviation )
|
||||
|
||||
$RandomNormal = $Mean + $StandardDeviation * [math]::Sqrt( -2 * [math]::Log( ( Get-Random -Minimum 0.0 -Maximum 1.0 ) ) ) * [math]::Cos( 2 * [math]::PI * ( Get-Random -Minimum 0.0 -Maximum 1.0 ) )
|
||||
|
||||
return $RandomNormal
|
||||
}
|
||||
|
||||
# Standard deviation function for testing
|
||||
function Get-StandardDeviation
|
||||
{
|
||||
[CmdletBinding()]
|
||||
param ( [double[]]$Numbers )
|
||||
|
||||
$Measure = $Numbers | Measure-Object -Average
|
||||
$PopulationDeviation = 0
|
||||
ForEach ($Number in $Numbers) { $PopulationDeviation += [math]::Pow( ( $Number - $Measure.Average ), 2 ) }
|
||||
$StandardDeviation = [math]::Sqrt( $PopulationDeviation / ( $Measure.Count - 1 ) )
|
||||
return $StandardDeviation
|
||||
}
|
||||
|
||||
# Test
|
||||
$RandomNormalNumbers = 1..1000 | ForEach { Get-RandomNormal -Mean 1 -StandardDeviation 0.5 }
|
||||
|
||||
$Measure = $RandomNormalNumbers | Measure-Object -Average
|
||||
|
||||
$Stats = [PSCustomObject]@{
|
||||
Count = $Measure.Count
|
||||
Average = $Measure.Average
|
||||
StandardDeviation = Get-StandardDeviation -Numbers $RandomNormalNumbers
|
||||
}
|
||||
|
||||
$Stats | Format-List
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
-- 28 Jul 2025
|
||||
include Settings
|
||||
-- 24 Aug 2025
|
||||
include Setting
|
||||
|
||||
say 'RANDOM NUMBERS'
|
||||
say version
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
let pi = 4.0 *. atan(1.0)
|
||||
|
||||
let random_gaussian = () => {
|
||||
1.0 +.
|
||||
sqrt(-2.0 *. log(Random.float(1.0))) *.
|
||||
cos(2.0 *. pi *. Random.float(1.0))
|
||||
}
|
||||
|
||||
let a = Belt.Array.makeBy(1000, (_) => random_gaussian ())
|
||||
|
||||
for i in 0 to 10 {
|
||||
Js.log(a[i])
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue