NiceIce
@NiceIce
lamer

Кто может объяснить что делает эта часть кода?

sub two {
        my @first;
        my @second;
        my $f0 = $_[0];
        my $s0 = $_[1];
	my $aline = $_[2];
	my $gline = $_[3];
        my ($i,$j,$prob);
	my ($wo, $w, $wu, $do, $d, $du, $lo, $l, $lu);
	$wo = $w = $wu = $do = $d = $du = $lo = $l = $lu = 0;
        $first[0] = exp(-$f0);
        $second[0] = exp(-$s0);
        for ($i = 1; $i < 20; $i++) {
                $first[$i] = $first[$i-1]*$f0/$i;
                $second[$i] = $second[$i-1]*$s0/$i;
        }
        for ($i = 0; $i < 20; $i++) {
                for ($j = 0; $j < 20; $j++) {
			$prob = $first[$i]*$second[$j];
			if ($i + $aline > $j) {
				if ($i+$j > $gline) {
					$wo += $prob;
				} elsif ($i+$j < $gline) {
					$wu += $prob;
				} else { $w += $prob;}
			} elsif ($i + $aline < $j) {
				if ($i+$j > $gline) {
					$lo += $prob;
				} elsif ($i+$j < $gline) {
					$lu += $prob;
				} else { $l += $prob;}
			} else {
				if ($i+$j > $gline) {
					$do += $prob;
				} elsif ($i+$j < $gline) {
					$du += $prob;
				} else { $d += $prob;}
			}
                }
        }
        return ($wo, $w, $wu, $do, $d, $du, $lo, $l, $lu);
}

А если у вас есть желание помочь за вознаграждение разобрать еще 160 строк кода, то напишите пожалуйста.
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev
software engineer
Тут не сложность кода, тут просто математические расчеты, какой-то порядок цифр рассчитывают.
$first[$i] = $first[$i-1]*$f0/$i;

На вход подается четыре параметра, возвращает массив данных.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы