Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,31 +0,0 @@
|
|||
with Ada.Text_IO, Ada.Float_Text_IO;
|
||||
|
||||
procedure FindMedian is
|
||||
|
||||
f: array(1..10) of float := ( 4.4, 2.3, -1.7, 7.5, 6.6, 0.0, 1.9, 8.2, 9.3, 4.5 );
|
||||
min_idx: integer;
|
||||
min_val, median_val, swap: float;
|
||||
|
||||
begin
|
||||
for i in f'range loop
|
||||
min_idx := i;
|
||||
min_val := f(i);
|
||||
for j in i+1 .. f'last loop
|
||||
if f(j) < min_val then
|
||||
min_idx := j;
|
||||
min_val := f(j);
|
||||
end if;
|
||||
end loop;
|
||||
swap := f(i); f(i) := f(min_idx); f(min_idx) := swap;
|
||||
end loop;
|
||||
|
||||
if f'length mod 2 /= 0 then
|
||||
median_val := f( f'length/2+1 );
|
||||
else
|
||||
median_val := ( f(f'length/2) + f(f'length/2+1) ) / 2.0;
|
||||
end if;
|
||||
|
||||
Ada.Text_IO.Put( "Median value: " );
|
||||
Ada.Float_Text_IO.Put( median_val );
|
||||
Ada.Text_IO.New_line;
|
||||
end FindMedian;
|
||||
|
|
@ -1 +0,0 @@
|
|||
FUNCTION MEDIAN(some-table (ALL))
|
||||
|
|
@ -28,7 +28,7 @@ extension op
|
|||
}
|
||||
}
|
||||
|
||||
public program()
|
||||
public Program()
|
||||
{
|
||||
var a1 := new real[]{4.1r, 5.6r, 7.2r, 1.7r, 9.3r, 4.4r, 3.2r};
|
||||
var a2 := new real[]{4.1r, 7.2r, 1.7r, 9.3r, 4.4r, 3.2r};
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
function median(sequence s)
|
||||
atom min,k
|
||||
-- Selection sort of half+1
|
||||
for i = 1 to length(s)/2+1 do
|
||||
min = s[i]
|
||||
k = 0
|
||||
for j = i+1 to length(s) do
|
||||
if s[j] < min then
|
||||
min = s[j]
|
||||
k = j
|
||||
end if
|
||||
end for
|
||||
if k then
|
||||
s[k] = s[i]
|
||||
s[i] = min
|
||||
end if
|
||||
end for
|
||||
if remainder(length(s),2) = 0 then
|
||||
return (s[$/2]+s[$/2+1])/2
|
||||
else
|
||||
return s[$/2+1]
|
||||
end if
|
||||
end function
|
||||
|
||||
? median({ 4.4, 2.3, -1.7, 7.5, 6.6, 0.0, 1.9, 8.2, 9.3, 4.5 })
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
function Measure-Data
|
||||
{
|
||||
[CmdletBinding()]
|
||||
[OutputType([PSCustomObject])]
|
||||
Param
|
||||
(
|
||||
[Parameter(Mandatory=$true,
|
||||
Position=0)]
|
||||
[double[]]
|
||||
$Data
|
||||
)
|
||||
|
||||
Begin
|
||||
{
|
||||
function Get-Mode ([double[]]$Data)
|
||||
{
|
||||
if ($Data.Count -gt ($Data | Select-Object -Unique).Count)
|
||||
{
|
||||
$groups = $Data | Group-Object | Sort-Object -Property Count -Descending
|
||||
|
||||
return ($groups | Where-Object {[double]$_.Count -eq [double]$groups[0].Count}).Name | ForEach-Object {[double]$_}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $null
|
||||
}
|
||||
}
|
||||
|
||||
function Get-StandardDeviation ([double[]]$Data)
|
||||
{
|
||||
$variance = 0
|
||||
$average = $Data | Measure-Object -Average | Select-Object -Property Count, Average
|
||||
|
||||
foreach ($number in $Data)
|
||||
{
|
||||
$variance += [Math]::Pow(($number - $average.Average),2)
|
||||
}
|
||||
|
||||
return [Math]::Sqrt($variance / ($average.Count-1))
|
||||
}
|
||||
|
||||
function Get-Median ([double[]]$Data)
|
||||
{
|
||||
if ($Data.Count % 2)
|
||||
{
|
||||
return $Data[[Math]::Floor($Data.Count/2)]
|
||||
}
|
||||
else
|
||||
{
|
||||
return ($Data[$Data.Count/2], $Data[$Data.Count/2-1] | Measure-Object -Average).Average
|
||||
}
|
||||
}
|
||||
}
|
||||
Process
|
||||
{
|
||||
$Data = $Data | Sort-Object
|
||||
|
||||
$Data | Measure-Object -Maximum -Minimum -Sum -Average |
|
||||
Select-Object -Property Count,
|
||||
Sum,
|
||||
Minimum,
|
||||
Maximum,
|
||||
@{Name='Range'; Expression={$_.Maximum - $_.Minimum}},
|
||||
@{Name='Mean' ; Expression={$_.Average}} |
|
||||
Add-Member -MemberType NoteProperty -Name Median -Value (Get-Median $Data) -PassThru |
|
||||
Add-Member -MemberType NoteProperty -Name StandardDeviation -Value (Get-StandardDeviation $Data) -PassThru |
|
||||
Add-Member -MemberType NoteProperty -Name Mode -Value (Get-Mode $Data) -PassThru
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
$statistics = Measure-Data 4, 5, 6, 7, 7, 7, 8, 1, 1, 1, 2, 3
|
||||
$statistics
|
||||
|
|
@ -1 +0,0 @@
|
|||
$statistics.Median
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
median: func [
|
||||
"Returns the midpoint value in a series of numbers; half the values are above, half are below."
|
||||
block [any-block!]
|
||||
/local len mid
|
||||
][
|
||||
if empty? block [return none]
|
||||
block: sort copy block
|
||||
len: length? block
|
||||
mid: to integer! len / 2
|
||||
either odd? len [
|
||||
pick block add 1 mid
|
||||
][
|
||||
(block/:mid) + (pick block add 1 mid) / 2
|
||||
]
|
||||
]
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
let median = (arr) =>
|
||||
{
|
||||
let float_compare = (a, b) => {
|
||||
let diff = a -. b
|
||||
if diff == 0.0 { 0 } else
|
||||
if diff > 0.0 { 1 } else { -1 }
|
||||
}
|
||||
let _ = Js.Array2.sortInPlaceWith(arr, float_compare)
|
||||
let count = Js.Array.length(arr)
|
||||
// find the middle value, or the lowest middle value
|
||||
let middleval = ((count - 1) / 2)
|
||||
let median =
|
||||
if (mod(count, 2) != 0) { // odd number, middle is the median
|
||||
arr[middleval]
|
||||
} else { // even number, calculate avg of 2 medians
|
||||
let low = arr[middleval]
|
||||
let high = arr[middleval+1]
|
||||
((low +. high) /. 2.0)
|
||||
}
|
||||
median
|
||||
}
|
||||
|
||||
Js.log(median([4.1, 5.6, 7.2, 1.7, 9.3, 4.4, 3.2]))
|
||||
Js.log(median([4.1, 7.2, 1.7, 9.3, 4.4, 3.2]))
|
||||
Loading…
Add table
Add a link
Reference in a new issue