2010-10-27 47 views
3

我正在一個模塊,其中涉及一組自然 號碼。因此我需要模擬一些n型的整數。我怎樣才能 呢?整數類型的模型n

例如, i從1開始連續遞增i的序列的總數= n(n + 1)/ 2

我該如何在這裏建模n?

+1

您有什麼需求? int或int int庫有什麼問題? – Rup 2010-10-27 11:41:38

回答

1

要求是我們應該可以使用n作爲整數。我想我明白了。

type element_i = N of nativeint | CNN of nativeint*nativeint 
(* element_i can be an integer or a*n+b represented as (a,b)) 
let to_string_i e = match e with N z -> "%d" z | CNN c -> " (%d xn + %d) " (fst c) (snd c) 

let plus_i a b = 
    match (a,b) with 
     | (N a1,N b1) -> N (a1 + b1) 
     | (N a1,CNN b1) -> CNN (fst b1, (snd b1) + a1) 
     | (CNN a1,N b1) -> CNN (fst a1, (snd a1) + b1) 

let times_i a b = 
    match (a,b) with 
     | (N a1,N b1) -> N (a1 * b1) 
     | (N a1,CNN b1) -> CNN ((fst b1) * a1, (snd b1) * a1) 
     | (CNN a1,N b1) -> CNN ((fst a1)* b1, (snd a1) * b1)