Gold point
Posted Q____Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章