WeChall - Flow Over Astronomy
Flow Over Astronomy (Coding, Math) by anto 自定义进制大整数计算,必须在 3.1416 秒内提交结果
Challenge
页面给出一个 charset、input base、solution base,以及一串用 input base 表示的等式。计算结果并以 solution base 表示提交。限时 3.1416 秒。
典型输入:
1 | Charset: hpQiNnoSt2E_guqOHd5j]P3v01wKZFk}{c8L6fmbDsMlVU7T[IzRYeWxGaB4#@JC9yrAX |
- Base N 使用 charset 的前 N 个字符做编码表
- 等式结构:一长串乘法,末尾
+一个数(全部是 input base 编码)
Solution
两个转换函数搞定:
1 | def from_base(s, charset, base): |
完整解法(抓题、计算、提交):
1 | import re, sys |
关键陷阱:
- 不用 float — 数值巨大,全部用 Python big int
- 单 session 完成 — charset 和 equation 每次请求随机生成,不能手动分批
- 解析等式 — 注意多行;末尾的
+ HjRq是加法项,前面的*是乘法 - HTML 解析 — 不要用
.find()切片,论坛反馈有人因此只错最后几位数字 - 限时 3.1416s — 自动化脚本必须在同一 HTTP session 内完成抓题→计算→提交
答案 session-bound,每次不同,无法复用固定值。