论坛各位高手,现有如下数据:
contest | t | solver |
1 | 1 | a |
1 | 2 | b |
1 | 3 | c |
1 | 4 | d |
1 | 5 | e |
1 | 6 | b |
1 | 7 | b |
1 | 8 | f |
1 | 9 | c |
1 | 10 | a |
1 | 11 | g |
1 | 12 | e |
1 | 13 | b |
1 | 14 | d |
1 | 15 | c |
1 | 16 | c |
1 | 17 | h |
1 | 18 | i |
1 | 19 | a |
1 | 20 | e |
2 | 1 | a |
2 | 2 | a |
2 | 3 | a |
2 | 4 | b |
2 | 5 | c |
2 | 6 | d |
2 | 7 | a |
2 | 8 | e |
2 | 9 | e |
2 | 10 | f |
2 | 11 | b |
2 | 12 | f |
2 | 13 | g |
2 | 14 | h |
2 | 15 | i |
2 | 16 | d |
2 | 17 | d |
contest表示竞赛场数,solver表示竞赛参赛选手,t表示参赛选手方案提交时间。现欲计算方案提交集中度变量,此变量定义如下:
根据原始数据生成如下数据:
| contest | t | solver | | a | b | c | d | e | f | g | h | i | n1 | n2 | average | 集中度1 | 集中度2 |
| 1 | 1 | a | | 1 | | | | | | | | | 1 | 1 | 1 | 0 | 0 |
| 1 | 2 | b | | 1 | 1 | | | | | | | | 2 | 2 | 1 | 0 | 0 |
| 1 | 3 | c | | 1 | 1 | 1 | | | | | | | 3 | 3 | 1 | 0 | 0 |
| 1 | 4 | d | | 1 | 1 | 1 | 1 | | | | | | 4 | 4 | 1 | 0 | 0 |
| 1 | 5 | e | | 1 | 1 | 1 | 1 | 1 | | | | | 5 | 5 | 1 | 0 | 0 |
| 1 | 6 | b | | 1 | 2 | 1 | 1 | 1 | | | | | 5 | 6 | 1.2 | 0.4 | 0.365148 |
| 1 | 7 | b | | 1 | 3 | 1 | 1 | 1 | | | | | 5 | 7 | 1.4 | 0.8 | 0.676123 |
| 1 | 8 | f | | 1 | 3 | 1 | 1 | 1 | 1 | | | | 6 | 8 | 1.33333 | 0.745356 | 0.645497 |
| 1 | 9 | c | | 1 | 3 | 2 | 1 | 1 | 1 | | | | 6 | 9 | 1.5 | 0.763763 | 0.62361 |
| 1 | 10 | a | | 2 | 3 | 2 | 1 | 1 | 1 | | | | 6 | 10 | 1.66667 | 0.745356 | 0.57735 |
| 1 | 11 | g | | 2 | 3 | 2 | 1 | 1 | 1 | 1 | | | 7 | 11 | 1.57143 | 0.728431 | 0.581087 |
| 1 | 12 | e | | 2 | 3 | 2 | 1 | 2 | 1 | 1 | | | 7 | 12 | 1.71429 | 0.699854 | 0.534522 |
| 1 | 13 | b | | 2 | 4 | 2 | 1 | 2 | 1 | 1 | | | 7 | 13 | 1.85714 | 0.989743 | 0.726273 |
| 1 | 14 | d | | 2 | 4 | 2 | 2 | 2 | 1 | 1 | | | 7 | 14 | 2 | 0.92582 | 0.654654 |
| 1 | 15 | c | | 2 | 4 | 3 | 2 | 2 | 1 | 1 | | | 7 | 15 | 2.14286 | 0.989743 | 0.676123 |
| 1 | 16 | c | | 2 | 4 | 4 | 2 | 2 | 1 | 1 | | | 7 | 16 | 2.28571 | 1.160577 | 0.767649 |
| 1 | 17 | h | | 2 | 4 | 4 | 2 | 2 | 1 | 1 | 1 | | 8 | 17 | 2.125 | 1.165922 | 0.799816 |
| 1 | 18 | i | | 2 | 4 | 4 | 2 | 2 | 1 | 1 | 1 | 1 | 9 | 18 | 2 | 1.154701 | 0.816497 |
| 1 | 19 | a | | 3 | 4 | 4 | 2 | 2 | 1 | 1 | 1 | 1 | 9 | 19 | 2.11111 | 1.196703 | 0.823628 |
| 1 | 20 | e | | 3 | 4 | 4 | 2 | 3 | 1 | 1 | 1 | 1 | 9 | 20 | 2.22222 | 1.227262 | 0.823273 |
| 2 | 1 | a | | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
| 2 | 2 | a | | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
| 2 | 3 | a | | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
| 2 | 4 | b | | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
| 2 | 5 | c | | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
n1表示参赛选手个数,n2表示方案个数。average表示人均方案数(=n2/n1),其中集中度1计算公式为:
集中度1(contest=1, t=1)=sqrt(((No.a-average)^2)/n1)
集中度1(contest=1, t=2)=sqrt(((No.a-average)^2+(No.b-average)^2)/n1)
集中度1(contest=1, t=3)=sqrt(((No.a-average)^2+(No.b-average)^2+(No.c-average)^2)/n1)
......
集中度2计算公式为:
集中度2(contest=1, t=1)=sqrt(((No.a-average)^2)/n2)
集中度2(contest=1, t=2)=sqrt(((No.a-average)^2+(No.b-average)^2)/n2)
集中度2(contest=1, t=3)=sqrt(((No.a-average)^2+(No.b-average)^2+(No.c-average)^2)/n2)
......
求论坛内各位高手如何计算集中度1和集中度2以便得到如下数据(见下表)。展示的数据中为了便于理解,我预先设置了a-i个solver。但是实际数据中solver的个数众多,事先并不知道solver的具体个数以及其提交方案的次数。
| contest | t | solver | 集中度1 | 集中度1 |
| 1 | 1 | a | 0 | 0 |
| 1 | 2 | b | 0 | 0 |
| 1 | 3 | c | 0 | 0 |
| 1 | 4 | d | 0 | 0 |
| 1 | 5 | e | 0 | 0 |
| 1 | 6 | b | 0.4 | 0.36515 |
| 1 | 7 | b | 0.8 | 0.67612 |
| 1 | 8 | f | 0.74536 | 0.6455 |
| 1 | 9 | c | 0.76376 | 0.62361 |
| 1 | 10 | a | 0.74536 | 0.57735 |
| 1 | 11 | g | 0.72843 | 0.58109 |
| 1 | 12 | e | 0.69985 | 0.53452 |
| 1 | 13 | b | 0.98974 | 0.72627 |
| 1 | 14 | d | 0.92582 | 0.65465 |
| 1 | 15 | c | 0.98974 | 0.67612 |
| 1 | 16 | c | 1.16058 | 0.76765 |
| 1 | 17 | h | 1.16592 | 0.79982 |
| 1 | 18 | i | 1.1547 | 0.8165 |
| 1 | 19 | a | 1.1967 | 0.82363 |
| 1 | 20 | e | 1.22726 | 0.82327 |
| 2 | 1 | a | … | … |
| 2 | 2 | a | … | … |
| 2 | 3 | a | … | … |
| 2 | 4 | b | … | … |
| 2 | 5 | c | … | … |