喵喵最近發明了一個神奇的遊戲。因為這個遊戲要丟非常多個硬幣,所以喵喵把它稱為「丟硬幣遊戲」。
這個遊戲的進行規則如下:首先,玩遊戲的人首先需要給出
喵喵很好奇對於不同的正整數序列,最後
由於喵喵的電腦記憶體不多,請避免在程式中引入 <iostream>
、<bits/stdc++.h>
標頭檔,以免記憶體超出限制。
本題沒有輸入,如果你輸入了任何東西,可能會導致各種不可預期的結果。
請#include "lib2293.h"
之後實作下列函數:
void calculate_distribution(int N, double* mean, double* stdev);
這個函數第一個參數 N
意義如題目所示。這個函數必須將所求的期望值存入第二個參數 mean
指向的 double,並將所求的標準差存入第三個參數 stdev
指向的 double。在一次執行中,這個函數將會被執行多次,所以請確保其有做好相關的初始化動作。
由於記憶體限制的緣故,這個函數中需要呼叫下列函數來分段取得
int get_array(int C, int a[]);
每次呼叫這個函數,評測系統將會依序讀入 a
陣列後回傳 1
。如果剩下的數字不足 a
陣列並直接回傳 0
。呼叫此函數前請確認 a
至少能夠存下
對於所有測資:
calculate_distribution
的次數不超過 5 次。對於 100 分的測資,
本題沒有輸出,如果你輸出了任何東西,你將會獲得一個WA。
假設正確的期望值與標準差分別是
註:
對於所有測資,若你的程式執行時間為時限的
你只需要知道
範例測資中,若 1 號硬幣是正面則
這裡有一個測試用的標頭檔,可以用來測試。
該標頭檔接受以下輸入,數字間皆以空白分隔:
第一行:calculate_distribution
的次數)
接下來
程式將會對每組測資輸出一行包含兩個浮點數,代表你回傳的值。
改編自 TIOJ 2076 / TIOJ 終極壓常數大賽 pB
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0 | 50 | |
2 | 1 | 50 | |
3 | 2 | 30 | |
4 | 3 | 50 | |
5 | 4 | 50 | |
6 | 5 | 110 | |
7 | 6 | 110 |