Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
116
Task/Statistics-Basic/Amazing-Hopper/statistics-basic.hopper
Normal file
116
Task/Statistics-Basic/Amazing-Hopper/statistics-basic.hopper
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
#include <basico.h>
|
||||
|
||||
#define TOTAL_BINES 10
|
||||
|
||||
algoritmo
|
||||
|
||||
/* verifica y obtiene argumento: tamaño de muestra*/
|
||||
tamaño muestra=0
|
||||
//obtener total argumentos
|
||||
//es distinto a '2', entonces{ terminar }
|
||||
//obtener parámetro numérico(2), mover a 'tamaño muestra'
|
||||
/* algo menos natural, pero más claro para una mente formal: */
|
||||
obtener total argumentos
|
||||
si ' es distinto a( 2 ) '
|
||||
terminar
|
||||
sino
|
||||
guardar ' parám numérico(2)' en 'tamaño muestra'
|
||||
fin si
|
||||
|
||||
/* establece la escala para desplegar barras */
|
||||
escala = 1.0
|
||||
si ' #(tamaño muestra > 50) '
|
||||
#( escala = 50.0 / tamaño muestra )
|
||||
fin si
|
||||
|
||||
/* Generar muestra de tamaño "tamaño muestra" */
|
||||
dimensionar con ( tamaño muestra) matriz aleatoria entera ( 10, muestra )
|
||||
|
||||
decimales '3'
|
||||
|
||||
/* Genera tabla de clases con 10 bines */
|
||||
tabla de clases=0
|
||||
bines(TOTAL_BINES, muestra), mover a 'tabla de clases'
|
||||
|
||||
/* Imprime tabla de clases */
|
||||
ir a subrutina( desplegar tabla de clases)
|
||||
|
||||
/* Calcula promedio según tabla de clases */
|
||||
promedio tabla=0, FREC=0, MC=0
|
||||
ir a subrutina ( calcular promedio de tabla de clases )
|
||||
|
||||
/* Calcula desviación estándar y varianza */
|
||||
desviación estándar=0, varianza=0
|
||||
ir a subrutina ( calcular desviación estándar y varianza )
|
||||
|
||||
/* Calcula promedio de la muestra completa e imprime medidas */
|
||||
ir a subrutina ( desplegar medidas y medias )
|
||||
|
||||
/* Construye barras */
|
||||
tamaño barras=0, barras=0
|
||||
ir a subrutina( construir barras para histograma ), mover a 'barras'
|
||||
|
||||
/* arma histograma de salida */
|
||||
sMC=0
|
||||
ir a subrutina( construir y desplegar histograma )
|
||||
|
||||
terminar
|
||||
|
||||
subrutinas
|
||||
|
||||
desplegar tabla de clases:
|
||||
token.separador '"\t"'
|
||||
imprimir '#(utf8("Tamaño de la muestra = ")), tamaño muestra,NL,NL,\
|
||||
#(utf8("Números entre 0 y 10\n\n")),\
|
||||
" --RANGO--\tM.DE C.\tFREC.\tF.R\t F.A.\tF.R.A.\n",\
|
||||
"-----------------------------------------------------\n"'
|
||||
imprimir 'justificar derecha(5,#(string(tabla de clases))), NL'
|
||||
|
||||
retornar
|
||||
|
||||
desplegar medidas y medias:
|
||||
promedio muestra=0
|
||||
muestra, promediar, mover a 'promedio muestra'
|
||||
|
||||
imprimir ' "Media de la muestra = ", promedio muestra, NL,\
|
||||
"Media de la tabla = ", promedio tabla, NL,\
|
||||
"Varianza = ", varianza, NL,\
|
||||
#(utf8("Desviación estandar = ")), desviación estándar,NL'
|
||||
retornar
|
||||
|
||||
construir barras para histograma:
|
||||
#(tamaño barras = int(FREC * escala * 5))
|
||||
|
||||
dimensionar con (TOTAL_BINES) matriz rellena ("*", barras)
|
||||
#(barras = replicate( barras, tamaño barras))
|
||||
retornar ' barras '
|
||||
|
||||
construir y desplegar histograma:
|
||||
#(sMC = string(MC))
|
||||
unir columnas( sMC, sMC, justificar derecha(5,#(string(FREC))), barras )
|
||||
|
||||
/* Imprime histograma */
|
||||
token.separador '" "'
|
||||
imprimir ( " M.C. FREC.\n-----------\n",\
|
||||
sMC,NL )
|
||||
|
||||
retornar
|
||||
|
||||
calcular promedio de tabla de clases:
|
||||
//[1:filasde(tabla de clases), 3] coger (tabla de clases), mover a 'MC'
|
||||
//[1:filasde(tabla de clases), 4] coger (tabla de clases), mover a 'FREC'
|
||||
/* un poco menos natural, pero más claro para una mente formal: */
|
||||
#basic{
|
||||
MC = tabla de clases[ 1:TOTAL_BINES, 3]
|
||||
FREC = tabla de clases[ 1:TOTAL_BINES, 4]
|
||||
}
|
||||
borrar intervalo
|
||||
multiplicar(MC,FREC), calcular sumatoria, dividir entre (tamaño muestra),
|
||||
mover a 'promedio tabla'
|
||||
retornar
|
||||
|
||||
calcular desviación estándar y varianza:
|
||||
restar( MC, promedio tabla), elevar al cuadrado, por (FREC),
|
||||
calcular sumatoria, dividir entre(tamaño muestra), copiar en 'varianza'
|
||||
calcular raíz, mover a 'desviación estándar'
|
||||
retornar
|
||||
45
Task/Statistics-Basic/EasyLang/statistics-basic.easy
Normal file
45
Task/Statistics-Basic/EasyLang/statistics-basic.easy
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
global list[] .
|
||||
proc mklist n . .
|
||||
list[] = [ ]
|
||||
for i = 1 to n
|
||||
list[] &= randomf
|
||||
.
|
||||
.
|
||||
func mean .
|
||||
for v in list[]
|
||||
sum += v
|
||||
.
|
||||
return sum / len list[]
|
||||
.
|
||||
func stddev .
|
||||
avg = mean
|
||||
for v in list[]
|
||||
squares += (avg - v) * (avg - v)
|
||||
.
|
||||
return sqrt (squares / len list[])
|
||||
.
|
||||
proc histo . .
|
||||
len hist[] 10
|
||||
for v in list[]
|
||||
ind = floor (v * 10) + 1
|
||||
hist[ind] += 1
|
||||
.
|
||||
for v in hist[]
|
||||
h = floor (v / len list[] * 200 + 0.5)
|
||||
s$ = substr "========================================" 1 h
|
||||
print v & " " & s$
|
||||
.
|
||||
.
|
||||
numfmt 4 5
|
||||
proc stats size . .
|
||||
mklist size
|
||||
print "Size: " & size
|
||||
print "Mean: " & mean
|
||||
print "Stddev: " & stddev
|
||||
histo
|
||||
print ""
|
||||
.
|
||||
stats 100
|
||||
stats 1000
|
||||
stats 10000
|
||||
stats 100000
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
func generate_statistics(n) {
|
||||
var(sum=0, sum2=0);
|
||||
var hist = 10.of(0);
|
||||
|
||||
var(sum=0, sum2=0)
|
||||
var hist = 10.of(0)
|
||||
|
||||
n.times {
|
||||
var r = 1.rand;
|
||||
sum += r;
|
||||
sum2 += r**2;
|
||||
hist[10*r] += 1;
|
||||
var r = 1.rand
|
||||
sum += r
|
||||
sum2 += r**2
|
||||
hist[10*r] += 1
|
||||
}
|
||||
|
||||
var mean = sum/n;
|
||||
var stddev = Math.sqrt(sum2/n - mean**2);
|
||||
|
||||
say "size: #{n}";
|
||||
say "mean: #{mean}";
|
||||
say "stddev: #{stddev}";
|
||||
|
||||
var max = hist.max;
|
||||
hist.range.each {|i|
|
||||
printf("%.1f:%s\n", 0.1*i, "=" * 70*hist[i]/max);
|
||||
|
||||
var mean = sum/n
|
||||
var stddev = sqrt(sum2/n - mean**2)
|
||||
|
||||
say "size: #{n}"
|
||||
say "mean: #{mean}"
|
||||
say "stddev: #{stddev}"
|
||||
|
||||
var max = hist.max
|
||||
for i in ^hist {
|
||||
printf("%.1f:%s\n", 0.1*i, "=" * 70*hist[i]/max)
|
||||
}
|
||||
print "\n";
|
||||
print "\n"
|
||||
}
|
||||
|
||||
|
||||
[100, 1000, 10000].each {|n| generate_statistics(n) }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue