首页 > haskell的分数运算

haskell的分数运算

孩子要上3年级了,里面涉及分数的部分,先准备一下。

haskell中涉及分数的模块是Ratio。

 

Ratio

Synopsis

Documentation

data Ratio a

Rational numbers, with numerator and denominator of some Integral type.

Instances

Typeable1 Ratio 
Integral a => Enum (Ratio a) 
Eq a => Eq (Ratio a) 
Integral a => Fractional (Ratio a) 
Integral a => Num (Ratio a) 
Integral a => Ord (Ratio a) 
(Integral a, Read a) => Read (Ratio a) 
Integral a => Real (Ratio a) 
Integral a => RealFrac (Ratio a) 
(Integral a, Show a) => Show (Ratio a) 

type Rational = Ratio Integer

Arbitrary-precision rational numbers, represented as a ratio of two Integer values. A rational number may be constructed using the % operator.

(%) :: Integral a => a -> a -> Ratio a

Forms the ratio of two integral numbers.

numerator :: Integral a => Ratio a -> a

Extract the numerator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

denominator :: Integral a => Ratio a -> a

Extract the denominator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

approxRational :: RealFrac a => a -> a -> Rational

approxRational, applied to two real fractional numbers x and epsilon, returns the simplest rational number within epsilon of x. A rational number y is said to be simpler than another y' if

  • abs (numerator y) <= abs (numerator y'), and
  • denominator y <= denominator y'.

Any real interval contains a unique simplest rational; in particular, note that 0/1 is the simplest rational of all.

比如:

Prelude Ratio> (2%3) * (3%4)

1 % 2

Prelude Ratio> (2%3) + (3%4)

17 % 12

Prelude Ratio> (2%3) / (3%4)

8 % 9

Prelude Ratio> (2%3) - (3%4)

(-1) % 12



Prelude Ratio> 3 % 2                                         --分数二分之三

3 % 2

Prelude Ratio> numerator (3 % 2)                     --分子

3

Prelude Ratio> denominator (3 % 2)                 --分母

2

Prelude Ratio> approxRational 1.5123 0.2      --在(1.5123 - 0.2, 1.5123 + 0.2)之间的最简单的分数

3 % 2



numerator:分子

denominator:分母

approxRational :approximate rational 近似分数

转载于:https://www.cnblogs.com/bailiang/archive/2012/06/29/2569881.html

更多相关:

  • 上篇笔记中梳理了一把 resolver 和 balancer,这里顺着前面的流程走一遍入口的 ClientConn 对象。ClientConn// ClientConn represents a virtual connection to a conceptual endpoint, to // perform RPCs. // //...

  • 我的实验是基于PSPNet模型实现二维图像的语义分割,下面的代码直接从得到的h5文件开始往下做。。。 也不知道是自己的检索能力出现了问题还是咋回事,搜遍全网都没有可以直接拿来用的语义分割代码,东拼西凑,算是搞成功了。 实验平台:Windows、VS2015、Tensorflow1.8 api、Python3.6 具体的流程为:...

  • Path Tracing 懒得翻译了,相信搞图形学的人都能看得懂,2333 Path Tracing is a rendering algorithm similar to ray tracing in which rays are cast from a virtual camera and traced through a s...

  • configure_file( [COPYONLY] [ESCAPE_QUOTES] [@ONLY][NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ]) 我遇到的是 configure_file(config/config.in ${CMAKE_SOURCE_DIR}/...

  •     直接复制以下代码创建一个名为settings.xml的文件,放到C:UsersAdministrator.m2下即可