Home Computer Tutorials Computer Knowledge Write a Perl program to calculate the intersection and difference of sets

Write a Perl program to calculate the intersection and difference of sets

Jan 09, 2024 pm 08:25 PM

Perl program to write intersection difference set

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;

In this code, by using a loop and a hash table, we can iterate over the list of keys and then increment the counter by the value of the given key. This code uses two hash tables (A and B) and iterates over their keys. Then, by using a counter (C) and a foreach statement in a loop, we can increment the counter value by the value of the given key.

@Everyone has it = grep { $count{C}{$_} == 2 } keys %{$count{C}}; means that the value in the hash table $count{C} is equal to 2 keys, filter them out and save them in the @everyone array. This statement is used to filter the hash table and only retain elements that meet the conditions.

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

@A Yes B No This code uses the grep function and sort function of the Perl language to select elements that appear only once in the value corresponding to the A key from the hash array %count and sort them in alphabetical order. .

In this code, we use the `grep` function in the Perl language to filter out elements that appear once in array B but not in array A. The specific implementation is to loop through each element in the B array and use the hash table `%count` to record the number of occurrences of each element. Finally, we sort the B array and then use the `grep` function to filter out the elements that meet the conditions. Finally, we return the filtered results as an array.

print("Common: @Everyone has it$/A-Only: @Only A has it$/B-Only: @Only B has it");

php How to determine the difference set between two two-dimensional arrays

$a=[

["sbnumber" => "0001-00001", "name" => "Xin'an Court"],

["sbnumber" => "0001-00002", "name" => "Zhongzhengyuan"],

["sbnumber" => "0001-00003", "name" => "Pragmatic Garden"]

["sbnumber" => "0001-00004", "name" => "Service Court"],

{ "sbnumber": "0001-00005", "name": "Zhang San" }

];

$b=[

["sbnumber" => "0001-00001", "name" => "Xin'an Court"],

["sbnumber" => "0001-00002", "name" => "Zhongzhengyuan"],

["sbnumber" => "0001-00003", "name" => "Pragmatic Garden"]

["sbnumber" => "0001-00004", "name" => "Service Court"],

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

];

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

$r is the result obtained by comparing $av['sbnumber'] and $bv['sbnumber'].

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

};

You can use the following code to get the values ​​in array $a that are different from array $b and store them in array $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) "Zhang San" }

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

In order to compare two difference sets and merge the results, you need to use custom rules for comparing content. Based on different content (such as names), we can determine the differences between records and thus compare them.

The above is the detailed content of Write a Perl program to calculate the intersection and difference of sets. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Discover How to Fix Drive Health Warning in Windows Settings Discover How to Fix Drive Health Warning in Windows Settings Mar 19, 2025 am 11:10 AM

What does the drive health warning in Windows Settings mean and what should you do when you receive the disk warning? Read this php.cn tutorial to get step-by-step instructions to cope with this situation.

How do I edit the Registry? (Warning: Use with caution!) How do I edit the Registry? (Warning: Use with caution!) Mar 21, 2025 pm 07:46 PM

Article discusses editing Windows Registry, precautions, backup methods, and potential issues from incorrect edits. Main issue: risks of system instability and data loss from improper changes.

How do I manage services in Windows? How do I manage services in Windows? Mar 21, 2025 pm 07:52 PM

Article discusses managing Windows services for system health, including starting, stopping, restarting services, and best practices for stability.

How to Fix the Steam Cloud Error? Try These Methods How to Fix the Steam Cloud Error? Try These Methods Apr 04, 2025 am 01:51 AM

The Steam Cloud error can be caused by many reasons. To play a game smoothly, you need to take some measures to remove this error before you launch the game. php.cn Software introduces some best ways as well as more useful information in this post.

Windows Metadata and Internet Services Problem: How to Fix It? Windows Metadata and Internet Services Problem: How to Fix It? Apr 02, 2025 pm 03:57 PM

You may see the “A connection to the Windows Metadata and Internet Services (WMIS) could not be established.” error on Event Viewer. This post from php.cn introduces how to remove the Windows Metadata and Internet Services problem.

How do I change the default app for a file type? How do I change the default app for a file type? Mar 21, 2025 pm 07:48 PM

Article discusses changing default apps for file types on Windows, including reverting and bulk changes. Main issue: no built-in bulk change option.

How to Resolve the KB5035942 Update Issues – Crashing System How to Resolve the KB5035942 Update Issues – Crashing System Apr 02, 2025 pm 04:16 PM

KB5035942 update issues - crashing system commonly happens to users. Inflicted people hope to find a way out of the kind of trouble, such as crashing system, installation, or sound issues. Targeting these situations, this post published by php.cn wil

How do I use the Group Policy Editor (gpedit.msc)? How do I use the Group Policy Editor (gpedit.msc)? Mar 21, 2025 pm 07:48 PM

The article explains how to use the Group Policy Editor (gpedit.msc) in Windows for managing system settings, highlighting common configurations and troubleshooting methods. It notes that gpedit.msc is unavailable in Windows Home editions, suggesting

See all articles