1
二零一五难题
背景 这个难题是四个四分之一难题的变体(本身就是上一个问题的主题)。像这个难题一样,目标是仅使用四位数字和某些数学运算符来查找不同整数的数学表达式。但是,在这种情况下,允许的数字仅为2、0、1和5。每个解决方案必须以正确的顺序准确地出现一次。令人惊讶的是,可以用这种方式表示许多整数。鼓励求解器首先尝试手动解决问题,因为它很有趣。 规则 常数可以由一个或多个数字构成: 整数:例如2、0、15等 小数:例如.2,.01、1.5等。 重复小数点:例如.2〜(= 0.222 ...)、. 15〜(= 0.1555 ...),20.15 ~~(= 20.1515 ...) 允许以下一元运算: 一元否定:-x 平方根:sqrt(x) 整数阶乘:x! 允许以下二进制操作: 标准算术运算符:x + y,xy,x * y和x / y 任意幂:x ^ y 任意根:rt [x](y)(= y的第x个根) 任务 您的程序应打印出尽可能多的0到100之间的整数的表达式,然后输出产生的表达式数量。 解决方案必须按顺序打印,格式为n = [expr]。 表达式必须依次使用所有数字2、0、1、5。 表达式必须使用上述符号打印。允许但不需要括号,空格也是如此。运算符的优先级顺序为一元否定,阶乘,乘幂,乘/除和加/减。 该程序无需返回所有数字的解决方案。因此,仅输出0的程序有效。但是,请参阅下面的评分部分。 该程序应在不到15分钟的现代计算机上运行。 您可以编写程序或函数。表达式应打印到STDOUT(或最接近的替代项)。表达式的数量可以打印到STDOUT或作为整数返回。适用标准代码的高尔夫限制。 输出示例 0=2*0*1*5 10=20*1*.5 42=((2+0!)!+1)!/5! 100=20*1*5 4 计分 …