[devel] статистика
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Авг 24 00:25:56 MSD 2007
On Thu, Aug 23, 2007 at 11:05:29PM +0400, Alexey Tourbin wrote:
> (ВРЕМЯ СБОРКИ СЛУЧАЙНО ВЫБРАННЫХ N src.rpm ПАКЕТОВ) <=
> N * (среднее + 2*сигма/sqrt(N))
> где
> среднее = 74 секунды
> сигма = 189 секунда
> неравенство выполняется с вероятностью около 90%.
Численный эксперимент показывает, что надежность формулы около 95%.
$ perl test-buildtime.pl <buildtime
mean=74.3942971025606
devi=189.240149227661
5 packages: 955/1000 = 95.5%
10 packages: 948/1000 = 94.8%
50 packages: 959/1000 = 95.9%
100 packages: 952/1000 = 95.2%
500 packages: 972/1000 = 97.2%
1000 packages: 973/1000 = 97.3%
5000 packages: 1000/1000 = 100.0%
$ perl test-buildtime.pl <buildtime
mean=74.3942971025606
devi=189.240149227661
5 packages: 950/1000 = 95.0%
10 packages: 943/1000 = 94.3%
50 packages: 954/1000 = 95.4%
100 packages: 957/1000 = 95.7%
500 packages: 970/1000 = 97.0%
1000 packages: 983/1000 = 98.3%
5000 packages: 1000/1000 = 100.0%
$ wc -l buildtime
6523 buildtime
$
(test-buildtime.pl приложен)
----------- следующая часть -----------
#!/usr/bin/perl
use strict;
use Statistics::Descriptive;
my $stats = Statistics::Descriptive::Full->new();
while (<>) {
my @v = split;
$stats->add_data(0+$v[-1]);
}
my $mean = $stats->mean();
my $devi = $stats->standard_deviation();
print "mean=$mean\n";
print "devi=$devi\n";
my @times = $stats->get_data();
sub calc_90_time ($) {
my $N = shift;
return $N * ($mean + 2*$devi/sqrt($N));
}
use List::Util qw(shuffle sum);
for my $N (5, 10, 50, 100, 500, 1000, 5000) {
my $time = calc_90_time($N);
my $n_ok = 0;
for (1 .. 1000) {
@times = shuffle(@times);
my $sum = sum @times[1 .. $N];
$n_ok++ if $sum <= $time;
}
printf "%4d packages: %4d/1000 = %.1f%\n", $N, $n_ok, 100*$n_ok/1000;
}
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070824/2e083d6b/attachment-0001.bin>
Подробная информация о списке рассылки Devel