【问题标题】:Ocaml Product of two polynomialsOcaml 两个多项式的乘积
【发布时间】:2015-05-10 21:18:59
【问题描述】:

如何计算两个多项式的乘积?

例如:x^3 + 3x^2 +0.2x 和 2x^4 + 3

首先我做了一个类型

Type term = {coefficient:int; name:string; exponent:int};;
Type polynomials = term list;;

然后我做了一个函数计算系数

let product l l' = 
  List.concat (List.map (fun e -> List.map (fun e' -> (e*e')) l'.coefficient)            
l.coefficient);;

这就是我卡住的地方。我想我也可以对指数使用相同的函数,但问题是要求编写一个带有一个参数的多项式函数,这意味着两个多项式将在同一个变量中

有人可以帮帮我吗

【问题讨论】:

    标签: ocaml polynomial-math


    【解决方案1】:

    您似乎是在说您被要求编写一个函数来将两个多项式相乘,但该函数应该只有一个参数。这确实没有多大意义。

    您始终可以使用元组将任意数量的值捆绑到一个值中,但没有理由这样做(我可以看到),而且对于 OCaml 来说也不是惯用的。

    这是一个带有一个参数(一对)乘以两个整数的函数:

    # let multiply (a, b) = a * b;;
    val multiply : int * int -> int = <fun>
    # multiply (8, 7);;
    - : int = 56
    

    (作为单独的注释,您提供的代码无法编译。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      相关资源
      最近更新 更多