เราได้รับระนาบที่มีจุดที่เป็นรูปสี่เหลี่ยมด้านขนานและภารกิจคือการคำนวณการนับของสี่เหลี่ยมด้านขนานที่สามารถเกิดขึ้นได้โดยใช้จุดที่กำหนด ในรูปสี่เหลี่ยมด้านขนานด้านตรงข้ามของรูปสี่เหลี่ยมจะขนานกัน ดังนั้นมุมตรงข้ามจะเท่ากัน
ป้อนข้อมูล −
int a[] = {0, 2, 5, 5, 2, 5, 2, 5, 2} Int b[] = {0, 0, 1, 4, 3, 8, 7, 11, 10}
ผลผลิต − นับสี่เหลี่ยมด้านขนานในระนาบ − 3
คำอธิบาย − เราได้รับคะแนน (x, y) และใช้จุดเหล่านี้ เราสามารถสร้างรูปสี่เหลี่ยมด้านขนานได้ 3 อันดังแสดงในรูป
ป้อนข้อมูล −
a[] = {0, 3, 1, 4, 1, 5} b[] = {0, 1, 3, 4, 4, 4}
ผลผลิต − นับสี่เหลี่ยมด้านขนานในระนาบ − 1
คำอธิบาย − เราได้จุด (x, y) และใช้จุดเหล่านี้ เราสามารถสร้างการนับ 1 สี่เหลี่ยมด้านขนานดังแสดงในรูป
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อน array_1 สำหรับค่าพิกัด x และ array_2 สำหรับค่าพิกัด y
-
คำนวณขนาดของ array_1 แล้วส่งข้อมูลไปยังฟังก์ชันเพื่อการประมวลผลต่อไป
-
สร้างตัวแปรของแผนผังประเภทที่จะสร้างคู่และเก็บข้อมูลประเภทจำนวนเต็ม
-
สร้างการนับตัวแปรชั่วคราวเพื่อเก็บผลรวมของสี่เหลี่ยมด้านขนานที่สามารถสร้างได้
-
เริ่มการวนซ้ำ FOR i จาก 0 จนถึงขนาดของอาร์เรย์_1
-
เริ่มการวนซ้ำ FOR j จาก i+1 จนถึงขนาดของอาร์เรย์_1
-
ภายในลูป ตั้งค่า a_mid ด้วย a[i] + a[j] และตั้งค่า b_mid ด้วย b[i] + b[j]
-
และเพิ่มค่ากลางของ array_1 และ array_2 ขึ้น 1
-
เริ่มวงอื่นที่จะข้ามแผนที่ตั้งแต่ต้นจนจบ
-
ภายในลูปให้ตั้งค่าตัวแปรชั่วคราวด้วยค่า y ของคู่
-
และตั้งค่าการนับด้วย temp * (temp -1 ) / 2
-
จำนวนคืน
-
พิมพ์ผลลัพธ์
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; //Count of parallelograms in a plane int parallelogram(int a[], int b[], int size){ map<pair<int, int>, int> um; int count = 0; for (int i=0; i<size; i++){ for (int j=i+1; j<size; j++){ int a_mid = a[i] + a[j]; int b_mid = b[i] + b[j]; um[make_pair(a_mid, b_mid)]++; } } for (auto it = um.begin(); it != um.end(); it++){ int temp = it->second; count+= temp*(temp - 1)/2; } return count; } int main(){ int a[] = {0, 3, 1, 4, 1, 5}; int b[] = {0, 1, 3, 4, 4, 4}; int size = sizeof(a) / sizeof(int); cout<<"Count of parallelograms in a plane: "<<parallelogram(a, b, size) << endl; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Count of parallelograms in a plane: 1