
计算比赛算积分的问题
有N个队参加比赛,根据比赛名次加分,名次可能有并列的。N个队按名次分1~A,A+1~B,B+1~C,C+1~N四组,名次在第一组的加5分,第二组加3分,第3组加1分,第四...
有N个队参加比赛,根据比赛名次加分,名次可能有并列的。N个队按名次分1~A,A+1~B,B+1~C,C+1~N四组,名次在第一组的加5分,第二组加3分,第3组加1分,第四组加0分。但现在有并列名次,加分应该均分。例如,18个队,按5,5,4,4分成四组。但现在并列第一名有7个(二到七名就没有了),并列第8名有8个(9到15名就没有了),再是并列第16名3个。
那么并列第一名的7个队每队加分为(5+5+5+5+5+3+3)/7;
并列第8名的7个队每队加分为(3+3+3+1+1+1+1+0)/8
并列16名的三个队每队加分就只有(0+0+0)/3
请问这种算法怎么写一个通用的算法。
您没理解我的意思。请看每队得分的计算例子。
"要是2个第一 2个第二 2个第三 。。。 2个第九 怎么办?
是4个第一组还是6个第一组? "
那就不是你所说的了,而是2个第一,2个第三,2个第五…了 展开
那么并列第一名的7个队每队加分为(5+5+5+5+5+3+3)/7;
并列第8名的7个队每队加分为(3+3+3+1+1+1+1+0)/8
并列16名的三个队每队加分就只有(0+0+0)/3
请问这种算法怎么写一个通用的算法。
您没理解我的意思。请看每队得分的计算例子。
"要是2个第一 2个第二 2个第三 。。。 2个第九 怎么办?
是4个第一组还是6个第一组? "
那就不是你所说的了,而是2个第一,2个第三,2个第五…了 展开
展开全部
这个不需要算法呀..或是自己编写一个函数也行..
思路就是.全局变量有N个队
然后读取这个N个队的比分到数组x中,
N个队的名称到数组y,然后让数组x按逆序排序,
也就是比分最高的排在前面.在排序过程中同步对y进行排序.让x和y是一一对应的.
然后根据你的分组信息..比如你的5544.就
for
i=1
to
ubound(数组y)-1
if
i<=5
then
print
"a组有"
&
数组y(i),
if
i>5
and
i<=10
then
print
"b组有"
&
数组y(i),
if
i>10
and
i<=14
then
print
"c组有"
&
数组y(i),
if
i>14
and
i<=18
then
print
"d组有"
&
数组y(i),
next
思路就是.全局变量有N个队
然后读取这个N个队的比分到数组x中,
N个队的名称到数组y,然后让数组x按逆序排序,
也就是比分最高的排在前面.在排序过程中同步对y进行排序.让x和y是一一对应的.
然后根据你的分组信息..比如你的5544.就
for
i=1
to
ubound(数组y)-1
if
i<=5
then
"a组有"
&
数组y(i),
if
i>5
and
i<=10
then
"b组有"
&
数组y(i),
if
i>10
and
i<=14
then
"c组有"
&
数组y(i),
if
i>14
and
i<=18
then
"d组有"
&
数组y(i),
next
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个不需要算法呀..或是自己编写一个函数也行..
思路就是.全局变量有N个队
然后读取这个N个队的比分到数组x中, N个队的名称到数组y,然后让数组x按逆序排序, 也就是比分最高的排在前面.在排序过程中同步对y进行排序.让x和y是一一对应的.
然后根据你的分组信息..比如你的5544.就
for i=1 to ubound(数组y)-1
if i<=5 then print "a组有" & 数组y(i),
if i>5 and i<=10 then print "b组有" & 数组y(i),
if i>10 and i<=14 then print "c组有" & 数组y(i),
if i>14 and i<=18 then print "d组有" & 数组y(i),
next
思路就是.全局变量有N个队
然后读取这个N个队的比分到数组x中, N个队的名称到数组y,然后让数组x按逆序排序, 也就是比分最高的排在前面.在排序过程中同步对y进行排序.让x和y是一一对应的.
然后根据你的分组信息..比如你的5544.就
for i=1 to ubound(数组y)-1
if i<=5 then print "a组有" & 数组y(i),
if i>5 and i<=10 then print "b组有" & 数组y(i),
if i>10 and i<=14 then print "c组有" & 数组y(i),
if i>14 and i<=18 then print "d组有" & 数组y(i),
next
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个不需要算法呀..或是自己编写一个函数也行..
思路就是.全局变量有N个队
然后读取这个N个队的比分到数组x中,
N个队的名称到数组y,然后让数组x按逆序排序,
也就是比分最高的排在前面.在排序过程中同步对y进行排序.让x和y是一一对应的.
然后根据你的分组信息..比如你的5544.就
for
i=1
to
ubound(数组y)-1
if
i<=5
then
print
"a组有"
&
数组y(i),
if
i>5
and
i<=10
then
print
"b组有"
&
数组y(i),
if
i>10
and
i<=14
then
print
"c组有"
&
数组y(i),
if
i>14
and
i<=18
then
print
"d组有"
&
数组y(i),
next
思路就是.全局变量有N个队
然后读取这个N个队的比分到数组x中,
N个队的名称到数组y,然后让数组x按逆序排序,
也就是比分最高的排在前面.在排序过程中同步对y进行排序.让x和y是一一对应的.
然后根据你的分组信息..比如你的5544.就
for
i=1
to
ubound(数组y)-1
if
i<=5
then
"a组有"
&
数组y(i),
if
i>5
and
i<=10
then
"b组有"
&
数组y(i),
if
i>10
and
i<=14
then
"c组有"
&
数组y(i),
if
i>14
and
i<=18
then
"d组有"
&
数组y(i),
next
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
网球比赛每一局的得分不是以我们常用的1,2,3分来计算,而是赢得一个球时,计算为15分?例如在某一局,某选手连续得分,他的分数计算为15比0,30比0,40比0,最后胜出这一局.
和圆形有密切的关系。一盘6局,把圆6等分,每份60度;每局4分,把60再4等分,成每份15。虽然规则现在看来很别扭,但是当时确实是如此规定出来的。
之所以现在是15-30-40-一局,而不是45,已经有人说了,因为英语forty-five由两个单词合成,报分时节奏不对,因此改成forty(40)。
和圆形有密切的关系。一盘6局,把圆6等分,每份60度;每局4分,把60再4等分,成每份15。虽然规则现在看来很别扭,但是当时确实是如此规定出来的。
之所以现在是15-30-40-一局,而不是45,已经有人说了,因为英语forty-five由两个单词合成,报分时节奏不对,因此改成forty(40)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要是2个第一 2个第二 2个第三 。。。 2个第九 怎么办?
是4个第一组还是6个第一组?
要是4个第一组 那第一组的得分 (5+5+5+5)/4=5
要是六个第一组 那得分是(5+5+5+5+5+3)/6=4.67
是4个第一组还是6个第一组?
要是4个第一组 那第一组的得分 (5+5+5+5)/4=5
要是六个第一组 那得分是(5+5+5+5+5+3)/6=4.67
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询