GAME · 小游戏

猜函数

有一个藏起来的函数,看不到它的图像。每次可以问它一个点的值,用尽量少的次数猜出它是什么。

更多

普通 查询 0 次 用时 00:00

查询函数值 不限次数,每查一个点记 1 次

f( , )

可以填 2、-1.5、pi/2、sqrt(2) 这样的数,也可以在图上点一下选位置。

你的答案

f(x) =

数学键盘 按下去会输入到刚才点过的框里

辅助表达式 每个都会画在图上、在表格里多一列

用 f(x) 表示已经查到的值:比如 f(x) - sin(x) 能看出去掉 sin(x) 之后还剩什么,f(x+1) - f(x) 是差分。也能求导:f'(x)、f''(x)(二元是 f_x(x, y)、f_xy(x, y)),表格里出现 ? 就点「补齐这一列」。用字母当系数(如 a x^2 + b)会出现滑块,点「拟合」会用查到的点自动算出系数。

近似工具

固定 =

函数值表

怎么玩

有一个藏起来的函数 f(x),看不到它的图像,只能查询:输入一个 x,得到 f(x) 的值。查到的点会画在图上、记在表格里。

  • 查询不限次数,上面会记下一共查了几次、用了多长时间,用的次数越少越厉害。
  • 在「你的答案」里写出 f(x),按提交。提交也不限次数:猜对就过关,猜错只会告诉你「答案错误」。
  • 只看函数是不是同一个,写法不限:sin(2x) 和 2sin(x)cos(x) 都算对。
  • 点图上的点会显示它的坐标;点图例里的一项可以在图上隐藏 / 显示它(比如点太多挡视线时把「查到的点」关掉)。

辅助表达式

  • 用来验证想法。每个辅助表达式都会画在图上,并在表格里多一列,显示它在每个查过的点上的值。
  • 可以用 f(x) 表示查到的值:f(x) - x^2 那一列就是「去掉 x² 以后剩下的部分」;f(-x)、f(x+1) - f(x) 也行。用到的点还没查过就显示 ?,点「补齐这一列」会把它们查出来(照常记次数)。
  • 可以求导:f'(x)、f''(x)…(最多 5 阶);二元函数是偏导 f_x(x, y)、f_y(x, y)、f_xy(x, y)…。导数也要「补齐」才知道,次数这样算:一阶导相当于在旁边再取一个点,所以没查过的点上 f′ 算 2 次,f″ 算 3 次,k 阶算 k+1 次;fxy 要 2×2 个点,算 4 次。已经知道的不重复算(比如这个点查过了,f′ 只再算 1 次)。
  • 用字母当系数(a、b、k…)会出现滑块;点「拟合」会按查到的点自动算出最合适的系数。

近似工具

  • 泰勒展开、帕德近似直接作用在藏起来的函数上:n 阶泰勒要知道这一点的 0~n 阶导数,算 n+1 次(和上面求导的算法一样)。最多 5 阶。
  • 批量查询:在一段区间里一次取好几个点,每个新点算 1 次。
  • 插值多项式、最小二乘、三次样条只用你已经查到的点,不算次数。

二元函数 f(x, y)

  • 「平面」图上每个点的颜色表示函数值(蓝负、橙正);底色是你的答案,猜对了点的颜色会和底色融在一起。点一个点,切片会移到它那里。
  • 「切片」把 x(或 y)固定,就变回一元函数来看;「立体」可以拖着转,看你的答案曲面和查到的点。
  • 一个办法:先固定 x = 0、1、2…,分别猜出关于 y 的一元函数,再看系数怎么随 x 变化。工具里的「切片汇总」能把每条切片的系数一次算出来。

输入格式

  • 乘号可以省略:2x、3sin(x)、x(x+1);乘方用 ^:x^2、e^(-x)、2^x;也认 x²、√x、|x|、π。
  • 函数:sin cos tan cot sec csc sinh cosh tanh exp ln lg log_2 sqrt cbrt abs sgn min max。
  • 反三角函数写成 sin⁻¹(x)、cos⁻¹(x)、tan⁻¹(x),用键盘上的键最方便;手打可以写 sin^-1(x) 或 arcsin(x)。
  • 取整:floor(x)(键盘上的 ⌊x⌋ 键)是不超过 x 的最大整数,⌊2.7⌋ = 2,⌊−2.7⌋ = −3;另外还有 ceil(x)(向上取整 ⌈x⌉)和 round(x)(四舍五入)。直接输入 ⌊x⌋、⌈x⌉ 也认。台阶上导数无定义。
  • 注意:-x^2 是 −(x²);2^3x 是 2³·x,指数有好几项要加括号,比如 e^(2x)。下面的预览会显示程序理解的式子。

为什么 f(π) 显示 0 而不是 1.2×10⁻¹⁶

电脑里的 π 只有 16 位有效数字,直接算 sin(π) 会得到 1.2×10⁻¹⁶ 这种「本来是 0」的数。这里每次计算都同时估计舍入误差最多有多大,结果比误差还小,就说明它和 0 分不开,显示 0。真不是 0 的小数(比如 e^(−36) ≈ 2.3×10⁻¹⁶)照常显示。同样的道理,分母和 0 分不开的时候(比如 tan(π/2)、1/sin(π)、1/x 在 x = 0)显示「无定义」:电脑算出来的 1.6×10¹⁶ 只是舍入误差除出来的。

怎么判断对错

一元函数在 −10 ≤ x ≤ 10、二元函数在 −5 ≤ x, y ≤ 5 里取 1000 多个点逐个比较,每个点都要几乎相等(相对误差 10⁻⁶ 以内)才算对;只在个别点上有没有定义不一样(比如 (x²−1)/(x−1) 和 x+1 在 x = 1)不算错。答案下面的「吻合 n/m 个点」只用你查到的点比,不会透露新信息。

出题给朋友

写一个函数,生成一个链接发给朋友。答案编码在链接里(看不出来,但不是加密)。

f(x) =

历史记录

记录只存在这个浏览器里。

    分享这道题

    朋友打开这个链接,会拿到同一道题(不包括你查过的点)。