Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Xác suất mưa ngày N+1 trong C++


Cho mảng chỉ chứa 0 (không mưa) và 1 (có mưa). Nhiệm vụ: dự đoán xác suất mưa ngày N+1 dựa trên lịch sử.

Phương pháp: Xác suất = (Số ngày mưa) / (Tổng số ngày).

Ví dụ 1

Input – arr[] = {1, 0, 0, 0, 1}

Output – 0.4

Giải thích: 2 ngày mưa / 5 ngày = 0.4.

Ví dụ 2

Input – arr[] = {0, 0, 1, 0}

Output – 0.25

Ví dụ code

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

double rainProbability(int arr[], int n) {
    int rainyDays = 0;
    for (int i = 0; i < n; i++) {
        if (arr[i] == 1) rainyDays++;
    }
    return (double)rainyDays / n;
}

int main() {
    int arr[] = {1, 0, 0, 0, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Rain probability day N+1: " << rainProbability(arr, n) << endl;
    return 0;
}

Kết quả

Rain probability day N+1: 0.4

Hạn chế: Mô hình này giả định các ngày độc lập đồng phân bố (i.i.d.). Thực tế thời tiết có mối tương quan tuần tự, nên mô hình Markov Chain hoặc Machine Learning cho kết quả tốt hơn.