首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Collatz猜想的QuickCheck

Collatz猜想的QuickCheck
EN

Stack Overflow用户
提问于 2020-03-03 04:54:03
回答 1查看 113关注 0票数 1

我需要编写一个QuickCheck属性来检查大于0的给定数字的Collatz猜想

我面临的挑战是,我为Collatz猜想编写的代码是递归的,所以要么按预期得到1,要么永远循环。

我不确定我是否知道如何利用QuickCheck就是这种情况。

知道吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-03 15:10:11

我认为这是为了练习编写QuickCheck属性的作业吗?

我怀疑这样做的意图是,如果Collatz递归以1结束(就像对所有正整数所做的那样)并永远循环,您就会编写一个成功的测试。换句话说,您不会被期望检测到递归是永远循环的(无论如何只能通过近似来实现,如果递归时间太长,就放弃)。

因此,如果您有一个返回1的递归函数1,那么您的QuickCheck属性最终将归结为collatz n == 1。根据您对QuickCheck属性的了解,您可能只需要编写具有适当类型签名的:prop_collatz n = collatz n == 1。或者,您应该使用Property类型和forAll类型,或者应该使用Positive类型来测试正整数。很难知道你的老师在期待什么。

我建议查看类中的一些示例,在这些类中,您测试了正整数集、非负整数集或其他约束整数集的属性,并遵循该示例。

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

https://stackoverflow.com/questions/60500290

复制
相关文章

相似问题

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