12
天皇官邸
在中国古代,社会等级不是由出生或财富决定的,而是由一个人在科举考试中表现出色的能力决定的。天堂的神圣统治者翡翠皇帝号召所有臣民接受检查以确定他们的身价,然后由谁下达神圣的使命来统治中国。 官僚规则: Divine官僚机构由以0开头的非负整数值等级组成。官僚机构的每个成员(bot)都属于一个等级。每个等级可以容纳任意多个成员,但除非以上所有等级都为空,否则不能为空 游戏开始时,所有成员的等级均为0 每一次官僚机构的每个成员都必须参加考试。考试包括正确猜测列表的布尔值。列表的长度是该成员上方的等级编号。 试题由以上级别的随机成员准备。最高级别的成员直接从JadeEmperor(请参见下文)获得问题。 考试分数至少达到50%的会员有资格晋升。考试分数低于50%的成员有资格降级。 只有在以下等级中有晋升资格的成员代替其职位时,才有资格降级的成员的排名才降低一级。 只要没有排名空缺,所有有资格晋升的会员的等级都会提高一。 如果不是所有符合条件的成员都可以降级或晋升,则优先级将降到最低(降级)。最高(促销)分数。领带随机断裂。 成员等级每回合最多只能改变1。 游戏规则: 每个机器人在游戏开始时都会被随机分配一个ID,该ID在整个过程中不会改变。在JadeEmperor具有ID -1,其他所有的连续非负的ID,从0开始。 所有机器人同时竞争 游戏运行100圈,机器人的得分为其在那段时间内的平均排名。 总得分是通过运行1000场比赛并取平均结果而获得。 每个Bot是一个Python 3类,实现以下四个功能: ask(self,n,ID),它通过返回list长度为n的布尔值a进行检查。ID是必须猜测该列表的机器人的ID。ask()可以在一个机器人的单个回合中被多次调用,但一点也不被调用。 answer(self,n,ID),这是通过返回list长度为n的布尔值a来回答考试的尝试。ID是ask()生成检查的机器人的ID 。answer()每个机器人每轮准确调用一次。 update(self,rankList,ownExam,otherExams)一旦控制器执行了所有降级和降级,就会调用。它的参数是:整数列表,按所有漫游器的ID列出所有等级;一个由两个列表组成的元组,首先是考试问题,然后是漫游器给出的答案(以防万一它忘记了);然后是元组列表,类似地由考试答案对组成,这次是机器人执行的所有考试。 __init__(self, ID, n) 传递该机器人自己的ID和竞争机器人的数量。 允许类实现其他私有功能 明确允许定义其他变量,并使用它们存储有关过去考试的数据。 禁止编程元效果,这意味着任何直接访问其他机器人代码,控制器代码的尝试均会导致异常或类似情况。这是考试策略的竞赛,而不是代码黑客的竞赛。 明确允许尝试互相帮助的机器人,只要它们不通过元效应来做到,而是纯粹通过传递的信息来实现 update() 仅在其他语言可以轻松转换为Python 3的情况下才允许使用其他语言。 库numpy将作为导入np。版本是1.6.5,这意味着它使用了旧的随机库。如果您有numpy 1.7,则可以使用旧功能numpy.random.mtrand进行测试。请记住要剥离mtrand以便提交。 如果机器人在运行时导致异常,则该机器人不合格。任何代码过于混乱以至于无法确定何时在调用ask()或时answer()都不会生成长度为n的列表的bot 也会被抢先取消资格。强制我进行深度复制输出的机器人的得分为-1。 类名必须唯一 每个人可以使用多个漫游器,但是仅采用最新版本的迭代更新漫游器。 由于关于机器人相似性似乎有些困惑: 您无权发布其他漫游器的副本。这是真正适用于此挑战的唯一 标准漏洞。 您可以与其他机器人(包括其他人的机器人)共享代码。 您不得提交从另一只由一个微不足道的变化的策略(如种子为出题的变化)不同的机器人,除非你能证明这种抄送机器人的数量是成功所需的最小制定他们的策略(通常是两个机器人进行合作)。 示例机器人: 的JadeEmperor始终是比赛的一部分,但不竞争; 他是最高级别的机器人考试的生成器。他的考试是随机的,但不是统一的考试,目的是让智能机器人有进步的方法。 class JadeEmperor: …