看板 Perl 關於我們 聯絡資訊
※ 引述《dryman (dryman)》之銘言: : 是一個解排列組合的問題.. : 解完後來看,文章居然不見了XD 因為我寫著寫著就解出來了XD 不知道有版大在回應,想說沒人看到趕緊刪掉:p 謝謝版大! 我的解法跟版大的有點像 我是寫兩個for 一開始把key做成array,然後對這個array寫兩個for作組合 my @Singlename = keys %Single; print @Singlename; my $NameLength=0; foreach my $k (@Singlename){ $NameLength++; } for(my $i=0; $i<=$NameLength-1; $i++){ my $Name1 = $Singlename[$i]; for(my $j=$i; $j<=$NameLength-1; $j++){ my $Name2 = $Singlename[$j]; my $Value; if($Name1 eq $Name2){ $Value = ($Single{$Name1}/$SingleCount)*($Single{$Name2}/$SingleCount); }elsif($Name1 ne $Name2){ $Value = 2*($Single{$Name1}/$SingleCount)*($Single{$Name2}/$SingleCount); }else{ die "Name1 and Name2 error!!"; } my $PName = $Name1.+$Name2; $Predict{$PName} = $Value; } } print "\nPredict\n"; print "$_: $Predict{$_}\n" for keys %Predict; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.88.228
AlanSung:這寫法好像 C :p 05/26 11:34
dryman:請問$SingleCount是做什麼用的@ @" 05/26 13:17
dryman:$NameLength-1 可以用 $#SingleName 取代 05/26 13:20
dryman:for裡面可以用for $i (0..$#SingleName) 05/26 13:21
adu:對... 因為我對$#還很不熟,常常會忘記:D 05/26 13:34
adu:$SingleCount是別段沒剪到的XD 把分子除上分母而已~ 05/26 13:35