能力值:
( LV2,RANK:150 )
|
-
-
2 楼
高手集结。表示很强大。
|
能力值:
( LV7,RANK:100 )
|
-
-
3 楼
悲惨的 Sleep
|
能力值:
(RANK:1130 )
|
-
-
4 楼
我对评分标准有些质疑
看A1成绩,16ms和21ms相差5ms,分数相差5分
看A3成绩,1094ms和1130ms相差36ms,分数却相差0.64分
也许你会说A3的基数大了,但是我想说的是,A3题目里面有个Sleep(1000),这个完全不是我们程序所消耗的时间,能把这个因素算作基数里面吗?
另外,我的A1自测情况,有时候是16ms,有时候是8ms,用GetTickCount计算时间,在30ms以下都是不精确的,能否将这两个分数拉出一倍的差距吗?
极端例子请看这个帖子的A1:
http://bbs.pediy.com/showpost.php?p=890231&postcount=25请看第4名和第5名,第4名做对5条,而第5名只做对3条,分数却只相差2分,仔细研究会发现,是前两条测试用例,相差了52ms所导致的,这个公平吗?
这题基本属于猜题类型的,个人觉得,不应该完全用时间来评分
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
前排围观,膜拜各路高手
|
能力值:
( LV7,RANK:100 )
|
-
-
6 楼
我对题目也很质疑。题目无法拉开选手的分数。例如循环只有区区几百次,Sleep也只有1秒钟,导致只要使用简单的HOOK就可以得到高分,并未全方位地考验选手的技术广泛度。
目前是使用debug方式的全军覆没,如果题目中的循环扩大到几亿甚至几千亿次,Sleep扩大到10秒或10000秒,那么目前得高分的全军覆没。
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
膜拜各位大牛!
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
这个题就是纯赌博嘛
|
能力值:
(RANK:1130 )
|
-
-
9 楼
我给评委一个简单建议:将前3条,每人的时间都加1000ms,然后重新算分
理由很简单,GetTickCount精度不够,加上与最后2条的Sleep(1000); 统一
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
等QB了。。。。悲剧啊
|
能力值:
( LV12,RANK:310 )
|
-
-
11 楼
测试用例不给力啊, 应该再多样化一点的
|
能力值:
( LV15,RANK:2473 )
|
-
-
12 楼
应该100个测试样本,每个1分
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
这年头,有的赚就不错了,做人要厚道。。。。
|
能力值:
( LV13,RANK:350 )
|
-
-
14 楼
要支持一下海风的
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
我们会考虑大家的意见和建议,看是否需要对评分的规则进行调整。
|
能力值:
( LV15,RANK:2473 )
|
-
-
16 楼
这样的题目还是事先公开样本rar加密码,或者只公开hash值
并声明参赛者提交答案就表示认可样本的公平性
评分标准在题目帖子中已经有描述,并且第一阶段第二题已有先例,大家应该心中有数
如果说加1000ms,那为什么不加10000ms呢,或者说为什么不把后两个减1000ms呢
规则的问题按道理应该在答题前或公开分数之前讨论的
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
ls说的有道理~~~
|
能力值:
( LV7,RANK:100 )
|
-
-
18 楼
精度问题并不是因为GetTickCount,而是因为程序本身运行时间太短。程序运行时间还没有程序本身启动时间长,怎么能保证答案的精度呢?
建议把循环提高到1000亿次以上,Sleep提高到29秒以上。
|
能力值:
( LV15,RANK:2473 )
|
-
-
19 楼
因为把后两个减1000ms才反映出提交程序的真正执行效率,体现出的是实用价值
我想故意加Sleep的本意是为了怕有人的答对了题,却分数太低,避免出现第一阶段第二题那种强烈对比
|
能力值:
(RANK:1130 )
|
-
-
20 楼
加10000ms的话,后面两个也要加上9000ms
后两个减1000ms是不公平的,理由我前面说了,GetTickCount是不精确的,小于20ms的都不是其真实时间
看下面的code
#include <windows.h>
#include <stdio.h>
int main()
{
DWORD t = GetTickCount();
Sleep(1);
DWORD t1 = GetTickCount();
printf("time: %d\n", t1 - t);
return 0;
}
我这里运行,有时候是15,有时候是0,精确吗?
再看下面的code
#include <windows.h>
#include <stdio.h>
int main()
{
DWORD t = GetTickCount();
Sleep(1000);
DWORD t1 = GetTickCount();
printf("time: %d\n", t1 - t);
return 0;
}
我这里运行,每次都是998,精确度比上面高多了
再看下面的code
#include <windows.h>
#include <stdio.h>
int main()
{
DWORD t = GetTickCount();
Sleep(10000);
DWORD t1 = GetTickCount();
printf("time: %d\n", t1 - t);
return 0;
}
每次都是10000
|
能力值:
( LV15,RANK:2473 )
|
-
-
21 楼
每个人做题前肯定是按照已有的规则去设计自己程序的
如果规则变了,只能重新出题大家都重做才更公平
|
能力值:
(RANK:1130 )
|
-
-
22 楼
是的,规则必须统一
我也赞成重新制定规则,大家重做
|
能力值:
( LV7,RANK:100 )
|
-
-
23 楼
这题就是个赌博题,海风认了吧。
|
能力值:
(RANK:1130 )
|
-
-
24 楼
赌博题其实无所谓,我的答案,兼容性相当好,只有极少的anti能灭掉
重新制定规则,重新出样本,我还是这份答案,但是输在GetTickCount的精度上面,我觉得很不公平
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
A0到A4成绩全部加1000ms,抵消系统线程间切换带来的损失,不就得了......
我是支持海风的
但是建议下次比赛改成这样的,这次就算了吧,成绩没出之前,评分标准早那里了,
而且前2阶段都有过,咋就没反应的啊
|
|
|