最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

2023-09-23:用go語言,假設(shè)每一次獲得隨機(jī)數(shù)的時(shí)候,這個(gè)數(shù)字大于100的概率是P。 嘗

2023-09-23 14:48 作者:福大大架構(gòu)師每日一題  | 我要投稿

2023-09-23:用go語言,假設(shè)每一次獲得隨機(jī)數(shù)的時(shí)候,這個(gè)數(shù)字大于100的概率是P。

嘗試N次,其中大于100的次數(shù)在A次~B次之間的概率是多少?

0 < P < 1, P是double類型,

1 <= A <= B <= N <= 100。

來自左程云。

答案2023-09-23:

首先,我們可以使用動(dòng)態(tài)規(guī)劃來解決這個(gè)問題。我們可以定義一個(gè)二維數(shù)組dp,其中dp[i][j]表示在i次嘗試中,獲得j次大于100的隨機(jī)數(shù)的概率。

然后,我們可以使用遞歸的方式計(jì)算dp[i][j]。具體地說,我們可以將每一次嘗試分為兩種情況:獲得大于100的隨機(jī)數(shù)和獲得小于等于100的隨機(jī)數(shù)。如果我們獲得大于100的隨機(jī)數(shù),則剩余的i-1次嘗試中,我們需要獲得j-1次大于100的隨機(jī)數(shù);如果我們獲得小于等于100的隨機(jī)數(shù),則剩余的i-1次嘗試中,我們還需要獲得j次大于100的隨機(jī)數(shù)。我們可以使用更大的P表示獲得大于100的隨機(jī)數(shù)的概率,用1-P表示獲得小于等于100的隨機(jī)數(shù)的概率。

遞歸的邊界條件是如果i為0且j為0,則表示已經(jīng)沒有剩余的嘗試次數(shù),并且已經(jīng)獲得了所需的j次大于100的隨機(jī)數(shù),所以概率為1;如果i為0且j不為0,則表示已經(jīng)沒有剩余的嘗試次數(shù),但是還沒有滿足所需的j次大于100的隨機(jī)數(shù),所以概率為0。

為了避免重復(fù)計(jì)算,我們可以使用一個(gè)二維數(shù)組dp來保存計(jì)算過的結(jié)果。在每次計(jì)算前,先檢查dp[i][j]是否已經(jīng)計(jì)算過,如果是,則直接返回結(jié)果。

最后,在主函數(shù)中,我們可以調(diào)用probability函數(shù)來計(jì)算概率,并打印結(jié)果。

總的時(shí)間復(fù)雜度和額外空間復(fù)雜度分別為O(N^2),因?yàn)樾枰?jì)算dp數(shù)組的所有元素。

go完整代碼如下:

package?main

import?"fmt"

func?probability(P?float64,?N?int,?A?int,?B?int)?float64?{
????dp?:=?make([][]float64,?N+1)
????for?i?:=?0;?i?<=?N;?i++?{
????????dp[i]?=?make([]float64,?N+1)
????????for?j?:=?0;?j?<=?N;?j++?{
????????????dp[i][j]?=?-1
????????}
????}
????ans?:=?0.0
????for?j?:=?A;?j?<=?B;?j++?{
????????ans?+=?process(P,?1-P,?N,?j,?dp)
????}
????return?ans
}

func?process(more,?less?float64,?i,?j?int,?dp?[][]float64)?float64?{
????if?i?<?0?||?j?<?0?||?i?<?j?{
????????return?0
????}
????if?i?==?0?&&?j?==?0?{
????????return?1
????}
????if?dp[i][j]?!=?-1?{
????????return?dp[i][j]
????}
????ans?:=?more*process(more,?less,?i-1,?j-1,?dp)?+?less*process(more,?less,?i-1,?j,?dp)
????dp[i][j]?=?ans
????return?ans
}

func?main()?{
????P?:=?0.6
????N?:=?100
????A?:=?30
????B?:=?50
????fmt.Println(probability(P,?N,?A,?B))
}

在這里插入圖片描述

rust完整代碼如下:

fn?probability(p:?f64,?n:?i32,?a:?i32,?b:?i32)?->?f64?{
????let?mut?dp:?Vec<Vec<f64>>?=?vec![vec![-1.0;?(n?+?1)?as?usize];?(n?+?1)?as?usize];
????let?mut?ans?=?0.0;
????for?j?in?a..=b?{
????????ans?+=?process(p,?1.0?-?p,?n,?j,?&mut?dp);
????}
????ans
}

fn?process(more:?f64,?less:?f64,?i:?i32,?j:?i32,?dp:?&mut?Vec<Vec<f64>>)?->?f64?{
????if?i?<?0?||?j?<?0?||?i?<?j?{
????????return?0.0;
????}
????if?i?==?0?&&?j?==?0?{
????????return?1.0;
????}
????if?dp[i?as?usize][j?as?usize]?!=?-1.0?{
????????return?dp[i?as?usize][j?as?usize];
????}
????let?ans?=?more?*?process(more,?less,?i?-?1,?j?-?1,?dp)?+?less?*?process(more,?less,?i?-?1,?j,?dp);
????dp[i?as?usize][j?as?usize]?=?ans;
????ans
}

fn?main()?{
????let?p?=?0.6;
????let?n?=?100;
????let?a?=?30;
????let?b?=?50;
????println!("{}",?probability(p,?n,?a,?b));
}

在這里插入圖片描述

c++完整代碼如下:

#include?<iostream>
#include?<vector>

double?process(double?more,?double?less,?int?i,?int?j,?std::vector<std::vector<double>>&?dp);

double?probability(double?P,?int?N,?int?A,?int?B)?{
????std::vector<std::vector<double>>?dp(N?+?1,?std::vector<double>(N?+?1,?-1));
????double?ans?=?0;
????for?(int?j?=?A;?j?<=?B;?j++)?{
????????ans?+=?process(P,?1?-?P,?N,?j,?dp);
????}
????return?ans;
}

double?process(double?more,?double?less,?int?i,?int?j,?std::vector<std::vector<double>>&?dp)?{
????if?(i?<?0?||?j?<?0?||?i?<?j)?{
????????return?0;
????}
????if?(i?==?0?&&?j?==?0)?{
????????return?1;
????}
????if?(dp[i][j]?!=?-1)?{
????????return?dp[i][j];
????}
????double?ans?=?more?*?process(more,?less,?i?-?1,?j?-?1,?dp)?+?less?*?process(more,?less,?i?-?1,?j,?dp);
????dp[i][j]?=?ans;
????return?ans;
}

int?main()?{
????double?P?=?0.6;
????int?N?=?100;
????int?A?=?30;
????int?B?=?50;
????std::cout?<<?probability(P,?N,?A,?B)?<<?std::endl;
????return?0;
}

在這里插入圖片描述

c完整代碼如下:

#include?<stdio.h>
#include?<stdlib.h>

double?probability(double?P,?int?N,?int?A,?int?B);
double?process(double?more,?double?less,?int?i,?int?j,?double**?dp);

double?probability(double?P,?int?N,?int?A,?int?B)?{
????double**?dp?=?(double**)malloc((N?+?1)?*?sizeof(double*));
????for?(int?i?=?0;?i?<=?N;?i++)?{
????????dp[i]?=?(double*)malloc((N?+?1)?*?sizeof(double));
????}

????for?(int?i?=?0;?i?<=?N;?i++)?{
????????for?(int?j?=?0;?j?<=?N;?j++)?{
????????????dp[i][j]?=?-1;
????????}
????}

????double?ans?=?0;
????for?(int?j?=?A;?j?<=?B;?j++)?{
????????ans?+=?process(P,?1?-?P,?N,?j,?dp);
????}

????for?(int?i?=?0;?i?<=?N;?i++)?{
????????free(dp[i]);
????}
????free(dp);

????return?ans;
}

double?process(double?more,?double?less,?int?i,?int?j,?double**?dp)?{
????if?(i?<?0?||?j?<?0?||?i?<?j)?{
????????return?0;
????}

????if?(i?==?0?&&?j?==?0)?{
????????return?1;
????}

????if?(dp[i][j]?!=?-1)?{
????????return?dp[i][j];
????}

????double?ans?=?more?*?process(more,?less,?i?-?1,?j?-?1,?dp)?+?less?*?process(more,?less,?i?-?1,?j,?dp);
????dp[i][j]?=?ans;
????return?ans;
}

int?main()?{
????double?P?=?0.6;
????int?N?=?100;
????int?A?=?30;
????int?B?=?50;
????printf("%f\n",?probability(P,?N,?A,?B));

????return?0;
}

在這里插入圖片描述


2023-09-23:用go語言,假設(shè)每一次獲得隨機(jī)數(shù)的時(shí)候,這個(gè)數(shù)字大于100的概率是P。 嘗的評論 (共 條)

分享到微博請遵守國家法律
社旗县| 静宁县| 横峰县| 望江县| 扶余县| 鄄城县| 河池市| 景谷| 虞城县| 文昌市| 公安县| 七台河市| 永丰县| 长葛市| 类乌齐县| 井陉县| 临邑县| 达州市| 漳平市| 湛江市| 小金县| 阳泉市| 郯城县| 桂东县| 晋中市| 天等县| 南丹县| 垫江县| 西吉县| 乌兰浩特市| 澎湖县| 唐山市| 新乐市| 渑池县| 鄂托克前旗| 卓资县| 长春市| 繁昌县| 乌什县| 平利县| 城口县|