- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在教程中遇到了这个逻辑数的自然数评估,它让我有些头疼:
natural_number(0).
natural_number(s(N)) :- natural_number(N).
N
是
0
很自然,如果不是我们尝试发送
s/1
的内容递归返回规则,直到内容为
0
,那么它是一个自然数,如果不是,那么它不是。
s(0)
,这很有效。如
1
和
s(s(0))
如
2
,但我希望能够转换
s(0)
至
1
反而。
sToInt(0,0). %sToInt(X,Y) Where X=s(N) and Y=integer of X
decode(0,0). %was orignally decode(z,0).
decode(s(N),D):- decode(N,E), D is E +1.
encode(0,0). %was orignally encode(0,z).
encode(D,s(N)):- D > 0, E is D-1, encode(E,N).
最佳答案
这是另一个使用 library(clpfd)
“双向”工作的解决方案SWI、YAP 或 SICStus
:- use_module(library(clpfd)).
natsx_int(0, 0).
natsx_int(s(N), I1) :-
I1 #> 0,
I2 #= I1 - 1,
natsx_int(N, I2).
关于prolog - 在Prolog中将peano数s(N)转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954435/
这是a question I asked almost two years ago的后续.我仍在尝试使用类型系统来编写一个小型线性代数库,其中向量/矩阵/张量的维度使用类型系统(使用 Peano 编号
我已经用 Python(来自 Matlab 的)编写了 Hilbert-Peano 空间填充曲线的实现来展平我的 2D 图像: def hilbert_peano(n): if n 3*h:
Coq's standard library说这个归纳类型给出了皮亚诺自然数: Inductive nat := | O : nat | S : nat -> nat. 听起来不错,因为我
这个问题在这里已经有了答案: Prolog successor notation yields incomplete result and infinite loop (2 个答案) 关闭 5 年前
作为一个基本的 Prolog 练习,我给自己设定了一个任务,即编写一个可以向前和向后工作的二叉树高度谓词——也就是说,除了确定已知二叉树的高度外,它还应该能够找到所有二叉树已知高度的树木(包括不平衡的
我目前正在尝试练习一些 Prolog。我刚开始,我正面临一个我不太明白的问题。我想递归地确定一个 Peano 数是否是另一个数的两倍。我试着这样解决: isDouble(0, X,X). isDoub
正在关注 this tutorial ,我有以下代码: {-# LANGUAGE DataKinds, TypeFamilies #-} data Nat = Z | S Nat type famil
我有一个存储在 MySQL 中的 x,y,z 3D 点,我想问的是regions, slice or point neighbors。有没有办法使用 Peano-Hilbert 曲线来索引点以加速查询
让我们假设有带有 dif/2 的 pure_2 Prolog 和没有 dif/2 的 pure_1 Prolog。我们能否意识到值的 Peano apartness,即 Peano 数,不使用 dif
我有以下用 GADT 编写的 peano 编号: type z = Z of z type 'a s = Z | S of 'a type _ t = Z : z t | S : 'n t -> 'n
在 Uni,我们面临使用累加器创建 Peano 数的尾递归加法的挑战。我们不允许使用我们创建的任何库函数或其他函数,但允许我们在辅助函数中“隐藏”累加器 这是类型 type Peano = |
虽然将 3D 坐标转换为 z 顺序曲线相对简单 ( Efficient z-order transformation in Fortran ),但我很难理解使用不同空间填充曲线(例如 Peano 或
我正在尝试在 Racket 中使用 peano numbers 集成一个算术函数。我只使用递归(没有 for/while 循环) 现在,我正在研究除法。我不确定我的路径是否正确,但 Racket 似乎
我想用 Rust 编写一个 Peano 数字的简单实现,看来我设法让基础工作正常: use self::Peano::*; use std::ops::Add; #[derive(Debug, Par
我目前正处于疯狂的边缘,试图在 Prolog 中解决一个简单的“乘以 peano 整数”问题。 基本规则 一个 peano 整数定义如下:0 -> 0; 1 -> s(0); 2 -> s(s(0))
PA6 : ∀{m n} -> m ≡ n -> n ≡ m 是我试图解决和支持的公理,我尝试使用 cong (来自核心库),但在使用 cong 构造函数时遇到问题 PA6 = cong 让我无处可去
我是一名优秀的程序员,十分优秀!