haskell - Haskell 中的模算术

标签 haskell math modular

我将如何创建一个函数,使 x 的值范围从 x=0x=19 并且如果x 值超过 19 或低于零,如何让它环绕

来自: x=20、x=21、x=22x=(-1)、x=(-2)、x=(-3)

致: x=0、x=1、x=2x=19、x=18、x=17 分别

我听说过模算术,这显然是我应该处理它的方式。

最佳答案

通常您会使用内置函数 modrem,但我认为它们是家庭作业的禁区。所以你可以编写自己的函数,例如

mod20 x | x < 0 = ...
        | x > 19 = ...
        | otherwise = x

您可以尝试在 ... 中填写不同的内容。最简单的方法之一是重复加法或减法,但我不想破坏所有的乐趣。

一旦有了这个函数,您就可以在每次“正常”算术运算之后“重新调整”值,例如mod20 (12 + 17)

关于haskell - Haskell 中的模算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6072248/

相关文章:

haskell - 学习 haskell 并掌握 xmonad 配置的最佳资源

performance - 为什么基于 Haskell 枚举器的 IO 如此频繁地调用 sigprocmask?

java - 如何将水果堆放整齐

math - Visual Basic 6.0 中的十进制数据类型

php - 如何整合我的代码?基于 JavaScript 和 PHP 的问题

haskell - 如何在 GHCi 中定义数据类型

haskell - 如何将函数应用于树的所有元素?

algorithm - while 循环的运行时间(数学)

architecture - 模块化系统架构

c++ - 模块化意大利面条代码