Gold point
此篇博客引用了網上的代碼,代碼地址:http://www.cnblogs.com/zw2013040101034/p/5370302.html.
Github地址:https://github.com/Divel-Qin/C-Program/tree/master/Goldpoint/Goldpoint
黃金點遊戲是一個數字小遊戲,其遊戲規則是:
N個同學(N通常大於10),每人寫一個0-100之間的有理數 (不包括0或100),交給裁判,裁判算出所有數字的平均值,然後乘以0.618(所謂黃金分割常數),得到G值。提交的數字最靠近G(取絕對值)的同學得到N分,離G最遠的同學得到-2分,其他同學得0分。玩了幾天以後,大家發現了一些很有意思的現象,比如黃金點在逐漸地往下移動。
該程序用C++寫,主要功能是算出G點,代碼如下:
ave = sum / num;
G = ave*0.618;
然後就是比較哪個數離G點最近:
for (j = 1; j <= M; j++)
{
S1[j] = abs(S[j] - G);
}
max = min = S1[1];
for (j = 1; j <= M; j++)
{
if (S1[j] >= max)
max = S1[j];
else if (S1[j] < min)
min = S1[j];
}
for (j = 1; j <= M; j++)
{
if (S1[j] == max)
S2[j] = -2;
else if (S1[j] == min)
S2[j] = M;
else S2[j] = 0;
}
for (j = 1; j <= M; j++)
{
Gold point