ðÒÏÆÉÌØ: áÎÏÎÉÍ (×ÈÏÄ | ÒÅÇÉÓÔÒÁÃÉÑ) ÎÅRU opennet.me  
OpenNET

[ ÎÏ×ÏÓÔÉ /+++ | ÆÏÒÕÍ | ÔÅÇÉ |    ]

ëÁÔÁÌÏÇ ÄÏËÕÍÅÎÔÁÃÉÉ / òÁÚÄÅÌ "Perl" / ïÇÌÁ×ÌÅÎÉÅ ÄÏËÕÍÅÎÔÁ

òðêõì òð õæåòåïê õðþòâäåïêë õíðþ þ òôåäíðãåïêóé

ßâäâàâ, õäåíâæû òðêõìðþêì àæð÷ý õðôæêôðþâí ôåÿèíûæâæý òð ôåíåþâïæïðõæê, êíê, àæð æð-ãå õâîðå, ðçåïêþâí òðéðãåõæû, õæåòåïû ðäêïâìðþðõæê õíðþ.

Øæè ÿâäâàè ÷ðíåå îåïåå ôåâíêÿèåæ òôêþåäåïïýë ïêãå õìôêòæ:

#!/usr/bin/perl -w
use locale;

%oo=("÷èäåæ"=>1, "âöôêìâ"=>1, "ÿâþæôâ"=>1);

$b="âöôêìâ âöôêìâ ÷èäåæ âöôêìâ ÿâþæôâ";
$o="âöôêìâ ÷èäåæ þàåôâ ÿâàåî àæð-æð";
$tw="âöôêìâ ïå÷èäåæ þàåôâ ÷èäåæ ÿâþæôâ";
$tb="âíóõìâ âíóõìâ ÷èäåæ ÷èäåæ ÷èäåæ õåúðäïó";

@m=($b, $o, $tb, $tw); rrand(\@m);
print join "\n", @m,"\n";

for $i(0 .. $#m){
  $h{$i}{$1}++ while $m[$i]=~m!((\w[\w-]*){4,30})!g;
  $vr{$i}=$m[$i];
}

for $r(keys %h){print "\n"; 
  my (@ee, $u, $trr);
  for $n(keys %{$h{$r}}){
    do{
      $t = join " " => $vr{$r};
      $u+=1;
      push @ee => $h{$r}{$n};
    } if exists $oo{$n};
  } 
  print "$t ",$u + $ee[0]-1,"\n";
}

sub rrand{
  my $m = shift; my $i;
  for($i=@$m; --$i;){
    my $j = int rand($i+1);
    net if $i==$j;
    @$m[$i,$j] = @$m[$j,$i]
  }
}

åõæû ìâìðë-æð æåìõæ þ òåôåîåïïâé $b,$o,$tw,$tb, ÿâúðïóåæõó þõå þ îâõõêþ. Äíó ðæíâäìê òêùåæõó òðäòôðúôâîîâ rrand(), ìðæðôâó òåôåõæâþíóåæ õíèàâïýî ð÷ôâÿðî øíåîåïæý îâõõêþâ. Äâíåå êäåæ çêìí, òðäõàêæýþâáüêë àâõæðæý ðäêïâìðþýé õíðþ þ òåôåîåïïýé ê ÿâïðõóüêë øæê àâõæðæý þ éåù éåùåë. Þ éåùå éåùåë 1(æ.ì. ïèèîåôâçêó øíåîåïæðþ îâõõêþâ ÷ýíâ õíèàâïýë ð÷ôâÿðî êÿîåïåïâ, æð èäð÷ïð ð÷ôâüâæûõó àåôåÿ ïðîåô îâõõêþâ) õðäåôãâæõó òôåäòðíðãêî äíó òåôåîåïïðë $b æâìêå äâïïýå:

     $b = "âöôêìâ âöôêìâ ÷èäåæ âöôêìâ ÿâþæôâ";

     $h{1}=(
            "âöôêìâ" => 3,
            "÷èäåæ" => 1,
            "ÿâþæôâ" => 1
           ); 

æ.å. õíðþð âöôêìâ òð àâõæðæå èòðæôå÷íåïêó þ æôê ôâÿâ ÷ðíûùå þ öâëíå, àæð äâåæ åîè ÷ðíûùêå ùâïõý þýíåÿæê þ õòêõðì òåôýé ôåÿèíûæâæðþ. Äâíåå õíåäèáæ õíðþâ ÷èäåæ ê ÿâþæôâ, ìðæðôýå æâì-ãå êúôâáæ ïåîâíðþâãïèá ôðíû þ òðäïóæêê õõýíìê ïâþåôé êÿ ôåÿèíûæâæðþ òðêõìðþðúð ÿâòôðõâ. Äâíåå þ çêìíå ð÷ñóþíóåæõó éåù(ÿâäâàâ ÷ýíâ õäåíâæû, â ïå òâîóæû õøìðïðîêæû), ìðæðôýë ÷èäåæ þýþðäêæû ôåÿèíûæâæý ÿâòôðõâ.

Äâíåå êäåæ çêìí:

     for $r(keys %h){print "\n";
       my (@ee, $u, $trr);
       for $n(keys %{$h{$r}}){
         do{
           $t = join " " => $vr{$r};
           $u++;
           push @ee => $h{$r}{$n};
         } if exists $oo{$n};
       } 
       print "$t ",$u + $ee[0]-1,"\n";
     }

ÿâòôâùêþâåî àêõíåïïðå ïâÿþâïêå éåùâ þ òåôåîåïïèá $r, õàêæýþâåî õ å£ òðîðüûá éåùê éåùåë. ßäåõû öèïìçêåë exists ôåâíêÿðþâï òðêõì ð÷üêé ìíáàåë þ äþèé éåùâé: þ éåùå, òðõæèòâáüåî ïâ þþðä, ê æåìèüåî òð ùâúè çêìíâ éåùå éåùåë. Åõíê êïöðôîâçêó õðäåôãêæõó þ ïâàâíûïðî þæðôðî éåùå %vr, æð ÿâòôâùêþâåî å£ $vr{$r}. Õæôðàìâ $u++ ðæþåàâåæ ÿâ ìðíêàåõæþð þéðãäåïêë þõåé õíðþ, ÿâäâïïýé þ ÿâòôðõå, þ êõìðîèá õæôðìè(öâëí). Äðòèõæêî ïâ þéðäå öôâÿâ "÷èäåæ âöôêìâ ÿâþæôâ", åõíê éðæó ÷ý ðäïð õíðþð êÿ øæðë öôâÿý õðþòâíð õð õíðþðî þ ðàåôåäïðë õæôðìå(þåäû êÿïâàâíûïð õæôðìâ ÷ýíâ òð÷êæâ ïâ àâõæðæïýë éåù) æð íðìâíûïâó òåôåîåïïâó $u èþåíêàêæ õþðå ÿïâàåïêå ïâ åäêïêàìè. Åõíê äþâ õíðþâ þ õæôðìå ê þ ÿâòôðõå ðäêïâìðþý, æð $u=2, åõíê æôê - $u=3 ê æâì äâíåå, õíðþ þ ÿâòôðõå îðãåæ ÷ýæû íá÷ðå ìðíêàåõæþð. Äâíåå êäåæ õæôðàìâ

     push @ee => $h{$r}{$n};

ìðæðôâó ÿâïðõêæ àâõæðæý õíðþ(3,1,1 ìâì ÷ýíð þýùå þ òôêîåôå) þ æåìèüåë õæôðìå. Äâíûùå êäåæ õâîâ exists ê òðõíå ïå£ ôâÿ÷êôâåîõó õ þåõðî òðþæðôóáüêéõó õíðþ ê þåõðî òðíïýé õðþòâäåïêë. Æ.å. äðíãïð ÷ýæû æâì, àæð÷ý òðíïðå õðþòâäåïêå öôâÿý êîåíð ÷ðíûùåå ÿïâàåïêå, ïåãåíê àåî ïåòðíïðå õðþòâäåïêå + òâôâ òðþæðôðþ. Ïð öèïìçêó öåäåæ õå÷ó òð éêæôðîè, äðòèõæêî, åõíê ïèãïð ïâëæê õòåçêâíêÿêôðþâïïèá êïöðôîâçêá æêòâ "Éåù éåùåë éåùåë éåùåë éåùåë îâõõêþðþ", æð þåõ òðþæðôåïêë õíðþ ÷èäåæ ÷ðíûùå, æ.å. þìíâä àíåïâ $ee[0]-1(ôâÿïêçâ þ åäêïêçâé ïâ õíèàâë ïåòôåäïâîåôåïïðúð òðþæðôâ) ÷ðíûùå, àåî $u. Þ æð-ãå þôåîó àâõæðæâ òðþæðôåïêë îðãåæ ÿâòôðõæð þýþåõæê ïâþåôé õõýíìè õ õíðþðî, ìðæðôðîè òðõþóüåï æåìõæ. Æ.å. ïåìêë ÷âíâïõ äíó öôâÿ, òðþæðôåïêë ê ðäêïðàïýé õíðþ.


XSQUARE
Inferno Solutions
Hosting by Hoster.ru
èÏcÔÉÎÇ:

úÁËÌÁÄËÉ ÎÁ ÓÁÊÔÅ
ðÒÏÓÌÅÄÉÔØ ÚÁ ÓÔÒÁÎÉÃÅÊ
Created 1996-2026 by Maxim Chirkov
äÏÂÁ×ÉÔØ ÎÏ×ÏÓÔØ, ðÏÄÄÅÒÖÁÔØ