Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ความน่าจะเป็นของฝนตกในวันที่ N+1 ใน C++


กำหนดให้มีอาร์เรย์ที่ประกอบด้วย 0 และ 1 โดย 0 แทนวันที่ไม่มีฝน 1 แทนวันที่มีฝน ภารกิจคือคำนวณความน่าจะเป็นของฝนตกในวันที่ N+1

สูตรการคำนวณ

ความน่าจะเป็น = จำนวนวันที่มีฝน / จำนวนวันทั้งหมด

ตัวอย่างที่ 1

Input: arr[] = {1, 0, 0, 0, 1}
Output: probability of rain on n+1th day : 0.4
คำอธิบาย: วันทั้งหมด 5 วัน, วันมีฝน 2 วัน → 2/5 = 0.4

ตัวอย่างที่ 2

Input: arr[] = {0, 0, 1, 0}
Output: probability of rain on n+1th day : 0.25
คำอธิบาย: วันทั้งหมด 4 วัน, วันมีฝน 1 วัน → 1/4 = 0.25

อัลกอริทึม

  1. รับค่าอาร์เรย์
  2. นับจำนวน 1 (วันมีฝน)
  3. หารด้วยขนาดอาร์เรย์
  4. แสดงผล

โค้ดตัวอย่าง

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

float probab_rain(int arr[], int size) {
    float count = 0, a;
    for (int i = 0; i < size; i++) {
        if (arr[i] == 1)
            count++;
    }
    a = count / size;
    return a;
}

int main() {
    int arr[] = {1, 0, 0, 0, 1};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "probability of rain on n+1th day : " << probab_rain(arr, size);
    return 0;
}

ผลลัพธ์

probability of rain on n+1th day : 0.4

หมายเหตุ: วิธีนี้สมมติว่าความน่าจะเป็นของฝนตกในแต่ละวันเป็นอิสระต่อกันและมีการแจกแจงเท่าเดิม (i.i.d.) ซึ่งเป็นแบบจำลองง่ายๆ ไม่ได้คำนึงถึงปัจจัยทาง khí tượngจริง