[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