圆周率日谜题

去年的圆周率日,笔者解析了一段神奇的求圆周率代码,可以求出任意精度的。今年正发愁不知道写些什么,偶然间看到一道来自北大数院公众号的题目,索性分享过来:

使用 1 至 20 间至多四个整数(可以相同),利用加、减、乘、除、乘方、对数和阶乘,构造出一个算式,使其计算出一个尽可能接近的数。规定:

  • 每个整数在算式中只能用一次;
  • 运算必须在有限步之内完成;
  • 提供的整数不能拼凑,例如不能由 1 和 10 拼出 110;
  • 并且,乘方、对数都是二元运算,不提供自然对数底等常数,也不提供其它函数;
  • 阶乘是唯一允许的一元运算。

小朋友,你是否有很多问号?快拿起笔和纸你最喜欢的编程语言试试吧!