首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮我学微积分!

帮我学微积分!
EN

Code Golf用户
提问于 2014-06-17 13:32:40
回答 1查看 4K关注 0票数 53

我喜欢编程,懂每一门语言,但我数学很差。不幸的是,我们学校要求计算机学生必须学一年微积分。下周有个测试,我不知道任何衍生产品的公式!

请帮我找出公式。我需要一个备忘单-一个程序(尽可能短,这样我的老师就不会注意到它),它接受一个表达式(如4*x^3-2)作为输入,并输出导数。(我不在乎输入和输出是否使用命令行参数、STDIN、STDOUT或其他什么,因为无论如何,我都在做所有的计算。)

该测试涵盖以下类型的功能:

  • 常量,如-38.5
  • 幂函数,如x^0.5x^-7
  • 指数函数,如0.5^x7^x (基总是正数)
  • 一个常数乘以一个函数,如3*x^5-0.1*0.3^x
  • 多个函数的和与差,如-5*x^2+10-3^x

我的老师总是用完全相同的方式编排他的问题,如上面所示。他也不使用任何分数,如π或e,或真正的大数(大于1,000)。他从不使用括号,而且总是用星号(*)表示乘法。唯一使用的变量总是x。

另一方面,我的老师对答案相当宽容。只要答案是明确的,它们根本不需要像上面所示的那样被简化或格式化。

虽然我可以使用任何语言,但请记住,我无法自己找出派生词。因此,如果程序使用内置函数来处理方程或计算导数,我将无法使用它。

在测试期间,除了备忘单上的程序之外,我将无法访问Internet或任何其他文件。

注意:这个场景完全是虚构的。在现实生活中,欺骗和帮助他人是错误的,永远不应该做。

EN

回答 1

Code Golf用户

发布于 2014-06-17 17:37:43

ECMAScript 6,127个字节

下面是我的regex尝试(使用单个regex和替换回调中的一些逻辑):

代码语言:javascript
复制
i.replace(/(^|[*+-])(\d+|(?:([\d.]+)\^)?(x)(?:\^(-?[\d.]+))?)(?![.*^])/g,(m,s,a,b,x,e)=>s+(b?'ln'+b+'*'+a:e?e--+'*x^'+e:x?1:0))

这需要将输入字符串存储在i中,并简单地返回结果。在兼容ECMAScript 6的控制台中试用它(比如火狐)。

票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/31930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档