💯
ARC做题策略 Q: 如果拿到题目,不知道如何下手怎么办?
要多想。不行就跳过吧,先做简单的练练手。
一些小建议:
- 很多题目涉及在输入grid中寻找一个图案,可以用遍历的方法尝试去匹配。
- ARC题目比较自由,因为只有几组输入输出样例,所以不需要考虑奇怪的边界情况。也就是说,不需要代码非常鲁棒,能解决问题即可。
Q: 怎么与RobotA聊天呢?
RobotA相对来说比较听话,有比较固定的方法与其交互。只需要注意,
建议把main函数的函数签名写为
def main(input_grid: np.ndarray) -> np.ndarray:
可能会缓解奇怪的类型错误。
请注意,一个hole,必须是一个函数,不能是一个变量! 也就是说,如果你写
a = `blabla`
我们的系统会崩溃掉的
a = `blabla`()
Q: 怎么与RobotB聊天呢?
RobotB交互自由了很多,很多同学不知道如何与其交流。我们为大家准备了一个交互模板。大家如果不知道怎么说,可以参考以下模板。 模板中主要分为三步:催眠,任务描述,指令。
You are a skilled Python programmer. Your task is to write Python code to transform the input grid into the output grid. In the input grid, you should see ... To make the output grid, you should ... Return your Python code in Markdown format.
import numpy as np black, blue, red, green, yellow, grey, pink, orange, teal, maroon = range(10) def main(input_grid: np.ndarray) -> np.ndarray:
输入IO可以直接用自然语言描述,也可以用代码描述。
input_grid = np.array(...) output_grid = np.array(...) assert np.array_equal(main(input_grid), output_grid)
当然,这只是一个呆板的模板,如果你有更好的方式,也欢迎分享~可以直接发在issue里。
Q: 我应该怎么做题,怎么记录时间呢?
不知道大家有没有看过魔方的比赛,
Q: 我需要提交哪些数据呢?
每一道题,应该有两个log文件,如果robotA生成了正确的代码,还有一个对应的pkl文件。所以一道题应该提交2个log,以及(一个pkl if 成功)。