跳至內容

編寫一個Perl程序來計算集合的交集和差集

更新時間
快连VPN:速度和安全性最佳的VPN服务
快连VPN:速度和安全性最佳的VPN服务

perl寫交集差集的程序一個

use strict;

use utf8;

open fa, "a.txt" or die "can't open a";

open fb, "b.txt" or die "can't open b";

chomp ( my @A = ) ;

chomp ( my @B = ) ;

close a; close b;

my (@everyone, @AHasBNot, @BHasANot, %count);

$count{A}{$_}=1 foreach @A;

$count{B}{$_}=1 foreach @B;

在這段代碼中,通過使用循環和哈希表,我們可以迭代鍵的列表,然後將計數器遞增給定鍵的值。這段代碼使用了兩個哈希表(A和B),並對它們的鍵進行迭代。然後,通過在循環中使用計數器(C)和foreach語句,我們可以將計數器值增加給定鍵的值。

@大家都有 = grep { $count{C}{$_} == 2 } keys %{$count{C}};的含義是根據哈希表$count{C}中的值等於2的鍵,將其篩選出來保存在@大家都有數組中。這個語句用於對哈希表進行篩選操作,僅保留符合條件的元素。

foreach (@A, @B) { $count{A}{$_}++; $count{B}{$_}++;}

@A有B無這段代碼使用了Perl語言的grep函數和sort函數,用於從哈希數組%count中選擇A鍵對應的值中只出現一次的元素,並按照字母順序進行排序。

在這段代碼中,我們使用了Perl語言中的`grep`函數來篩選出數組B中出現一次而數組A中沒有的元素。具體實現是通過對B數組中的每個元素進行循環遍歷,並使用哈希表`%count`來記錄每個元素的出現次數。最後,我們對B數組進行排序,然後使用`grep`函數來篩選出符合條件的元素。最終,我們將篩選結果作爲數組返回。

print("Common: @大家都有$/A-Only: @只有A有$/B-Only: @只有B有");

php 2個二維數組如何判斷差集

$a=[

["sbnumber" => "0001-00001", "name" => "心安苑"],

["sbnumber" => "0001-00002", "name" => "中正苑"],

["sbnumber" => "0001-00003", "name" => "務實苑"]

["sbnumber" => "0001-00004", "name" => "服務苑"],

{ "sbnumber": "0001-00005", "name": "張三" }

];

$b=[

["sbnumber" => "0001-00001", "name" => "心安苑"],

["sbnumber" => "0001-00002", "name" => "中正苑"],

["sbnumber" => "0001-00003", "name" => "務實苑"]

["sbnumber" => "0001-00004", "name" => "服務苑"],

{"sbnumber": "0001-00007", "name": "李四"}

];

$cmp=function($av, $bv){

$r是通過比較$av['sbnumber']和$bv['sbnumber']來得到的結果。

return $r===0 ? strcmp($av['name'],$bv['name']) : $r;

};

你可以使用下面的代碼來獲取數組 $a 中與數組 $b 不同的值並存儲在數組 $c 中:$c = array_values(array_udiff($a, $b, $cmp));

$d=array_udiff($b, $a, $cmp);

foreach($d as &$dv) $c[]=$dv;

unset($d);

var_dump($c);array(2) {

[0]=> array(2) { ["sbnumber"]=> string(15) "0001-00005" ["name"]=> string(6) "張三" }

[1]=> array(2) { ["sbnumber"]=> string(15) "0001-00007" ["name"]=> string(6) "李四" }

爲了比較兩次差集併合並結果,需要使用自定義的對內容進行比較的規則。根據不同的內容(例如名字),我們可以確定記錄之間的差異,從而進行比較。

以上就是編寫一個Perl程序來計算集合的交集和差集的詳細內容,更多請關注本站其它相關文章!

更新時間

發表留言

請注意,留言須先通過審核才能發佈。