กำหนดให้มีอาร์เรย์ที่ประกอบด้วย 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 (วันมีฝน)
- หารด้วยขนาดอาร์เรย์
- แสดงผล
โค้ดตัวอย่าง
#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จริง