您的挑战:连接到在线Integer序列百科全书OEIS.org,访问任意随机有效序列,输出它的ID,并输出由OEIS条目提供的序列的所有成员。唯一允许您连接的网站是OEIS.org。
提示:在URL(如http://oeis.org/A280629 )中可以找到序列,但是在URL(如http://oeis.org/search?q=id:A280629&fmt=text )上可以找到更容易解析的版本。现在和未来的每个序列都匹配regex "[A-Z]\d{6}"。( regex是用来描述ID的样子的。有很多无效的序列也匹配它)。OEIS的网络摄像头(http://oeis.org/webcam)功能生成随机序列,但您必须找到一种方法将下拉菜单从“最佳序列”更改为“所有序列”来使用它。
示例输出:
A280629
1, 1, 7, 139, 6913, 508921, 57888967, 9313574419, 1984690709953, 547467006437041, 188946742298214727, 79783392959511537499, 40498043815904027702593, 24314800861291379306213161, 17047720745682515427867108487, 13802952030641885344209574247779, 12780883488499783875309105315925633, 13420910251496135926622603184056054881, 15863354775169518855398667975850797997447, 20966527201075972453953302254528386060431659现有的每一个序列都必须有被输出的机会,而不一定是一个平等的机会。
您的程序应该继续正常工作,而不考虑将来添加的序列。尽管目前所有ID都以A开头,但在所有A序列运行完之后,最终还是会有一个序列B000001。您可以假设在定义Z999999之后不会有更多的序列,但是您必须假设它最终将被定义。
程序不应该输出的无效序列是不存在的。您可以将没有给定成员的序列(例如A280611 )视为无效的,或者只给出序列ID,而不给出任何其他或错误的值,但您必须是一致的。
这是密码-高尔夫,最少字节赢!
发布于 2022-12-15 16:58:16
因为有人评论认为这在JS中是不可能的!
必须从OEIS (共识)的根目录运行。返回一个2元素数组,第一个元素是序列号,第二个元素是序列本身。
f=async n=>(s=/tt>[^<]+/.exec(await(await fetch(n+=Math.random()*1e6|0)).text()))?[n,s[0].slice(3)]:f`A`要测试它,请转到OEIS主页 (或任何序列的页面),打开浏览器的控制台并复制和粘贴下面的代码:
f=async n=>(s=/tt>[^<]+/.exec(await(await fetch(n+=Math.random()*1e6|0)).text()))?[n,s[0].slice(3)]:f`A`
await f()这应该是可行的,并可能会被打得更远一点,但我在我的手机,所以不能正确测试它。
f=async n=>(s=/(?<=tt>)[^<]+/.exec(await(await fetch(n+=Math.random()*1e6|0)).text()))?[n,s]:f`A`https://codegolf.stackexchange.com/questions/106068
复制相似问题