কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: কোঅর্ডিনেট পয়েন্টগুলো শুধু দুটি সমান্তরাল রেখায় আছে কিনা


অ্যারে arr[] দেওয়া আছে, কোঅর্ডিনেট = (i, arr[i])। এই পয়েন্টগুলো কি শুধু দুটি সমান্তরাল রেখায় আঁকা যায়?
সমাধান: তিনটি পয়েন্ট নিয়ে স্লপ مقایনা করুন। যেহেতু দুটি রেখা, তাই তিন পয়েন্টের মাঝপথে দুটি একই রেখায় থাকবে। ইন্টারসেপ্ট বের করে ঠিক দুটি ভিন্ন মান পাওয়া গেলে সম্ভব।

C++ কোড উদাহরণ

#include <bits/stdc++.h>
using namespace std;

bool is_intercept(double slope, int arr[], int n) {
    set<double> lines;
    for (int i = 0; i < n; i++)
        lines.insert(arr[i] - slope * i);
    return lines.size() == 2;
}

bool is_parallel(int arr[], int n) {
    bool s1 = is_intercept(arr[1]-arr[0], arr, n);
    bool s2 = is_intercept(arr[2]-arr[1], arr, n);
    bool s3 = is_intercept((arr[2]-arr[0])/2.0, arr, n);
    return s1 || s2 || s3;
}

int main() {
    int arr[] = {2,6,8,12,14};
    int n = sizeof(arr)/sizeof(arr[0]);
    cout << (int)is_parallel(arr, n); // 1 = true
    return 0;
}

আউটপুট

1
  1. দুটি রেখার ছেদবিন্দু খুঁজে বের করার জন্য C++ প্রোগ্রাম

  2. C++ প্রোগ্রাম: আভভ-বিলো প্রিমিটিভ ব্যবহার করে দুটি লাইন ইন্টারসেক্ট করে কিনা চেক করা

  3. C++ প্রোগ্রাম: দ্বিঘাত সমীকরণের মূল (Roots) নির্ণয়

  4. C++ প্রোগ্রাম: প্রাইম সংখ্যা (Prime Number) যাচাই