random - 如何在 Prolog 中表达无穷大?
问题描述
我正在尝试使用 random/3
random(+L:int, +U:int, -R:int)
有什么东西可以用来表示无穷大吗?
例如:
random(0, Infinity, Random_Number).
是否有可能通过随机实现这一目标?或者有没有其他简单的选择?
PS我在使用 sup ( Supremum ) 的地方制作了 clpfd 程序,但我没有使用 clpfd。
解决方案
评论中的讨论多么有趣。我对无限数和数学的不发达直觉告诉我:
在物理计算机上可以使用一致的表示法来表示有限数量的整数。所以会有无数其他整数无法表示。因此,如果您随机选择任何数字,您可以在您的机器上表示它的概率为 0。您不妨定义:
random_between(0, infinite, infinite).
超限数字 可能是开始阅读的一个地方,但我该说谁。你需要一个数学家来解决这类问题,而不是一个编程的行人。
也许您应该在https://math.stackexchange.com/上提问?
对于您的问题:您可以用符号表示无穷大的概念,例如 atom infinite
。然后你需要决定如何在你的代数中处理这个概念,并为它提供规则。以上random_between/3
只是一个例子。如需灵感,请查看浮点数如何处理无穷大。
推荐阅读
- php - Composer 在您的平台中检测到问题:您的 Composer 依赖项需要 PHP 版本 ">= 7.3.0"
- c# - FileStream 更改 excel 扩展名
- azure-devops - 如何在 Azure Devops 任务组中将一个参数的值传递给另一个参数
- c# - 为什么 MahApps 找不到 Controls.AnimatedTabControl.xaml?
- lua - 使用 Tween 服务时“尝试调用 TweenInfo 值”
- python - pdfminer3 没有从彩色 pdf 页面中提取文本,如何将 pdf 页面转换为灰度?
- c++ - 额外的行作为 C++ 中的输出出现
- c++ - 如何在 wxRichToolTip、wxWidgets 中添加按钮?
- python - 删除重复项并使用最旧的值完成 nan 并优化运行时间
- javascript - 拖入反应后如何显示下一张幻灯片?