标签: equivalence

如何减少逻辑陈述?

我很确定我能记得在我的大学水平课程中做过类似的事情并且有一些公式,但是我的思绪让我失望了.

鉴于声明:(a OR b OR d)AND(a OR c)

我很确定这可以简化为:(OR OR b OR d或c)

但我不记得我会如何证明这一点.

也许这是一系列逻辑表?

logic computer-science equivalence

7
推荐指数
2
解决办法
2479
查看次数

试图找到一个算法,它采用2个正则表达式,并告诉它们是否相同

我试图通过给出两种语言L1和L2来确定算法是什么,以确定它们是否相等(L1 = L2).

我发现它很难想出一个,虽然我很确定它需要首先转换为DFA,然后将它们减少到最小的DFA.

另外,我知道如果L1-L2和L2-L1为空,则L1 = L2.

有理论的人在这里好吗?

regex theory expression equivalence

6
推荐指数
1
解决办法
228
查看次数

String.Format(.NET)在Java中是等效的吗?

.NET中的String.Format(可能只是VB.NET)将{0},{1},...转换为确定的String,例如:

Dim St As String = "Test: {0}, {1}"
Console.WriteLine(String.Format(St, "Text1", "Text2"))
Run Code Online (Sandbox Code Playgroud)

我试图在Google和StackOverflows中搜索,但它们都返回数字字符串格式.

java string android equivalence equivalent

6
推荐指数
2
解决办法
3269
查看次数

haskell按功能检查相等

在haskell我可以使用

sortBy (comparing snd) 
Run Code Online (Sandbox Code Playgroud)

按元组中的第二个值排序.

是否有相同的功能来测试等效性?我想出了这个,但也许标准库中有一些东西.

equalsBy :: Eq b => (a -> b) -> a -> a -> Bool
equalsBy f x y = f x == f y
Run Code Online (Sandbox Code Playgroud)

最终目标是按第二个值对对列表进行分组.有了这个,我能做到

groupBy (equalsBy snd) pairs
Run Code Online (Sandbox Code Playgroud)

代替

groupBy (\x y -> (snd x) == (snd y)) pairs
Run Code Online (Sandbox Code Playgroud)

haskell equivalence

6
推荐指数
1
解决办法
1579
查看次数

Java char也是一个int?

我试图为课程完成一些代码:

public int getValue(char value) {
    if (value == 'y') return this.y;
    else if (value == 'x') return this.x;
Run Code Online (Sandbox Code Playgroud)

因为我最终可能无法返回任何东西,所以它告诉我最后这样做:

return value;
Run Code Online (Sandbox Code Playgroud)

这让我很吃惊,因为该方法的返回类型是类型int.然而,它告诉我要回来char!我正在使用eclipse,习惯于无数的警告和东西,这是一个重大的惊喜.

那么,char真的是一个int?为什么会这样?

java type-conversion equivalence

6
推荐指数
1
解决办法
1596
查看次数

使用 Fortran 可分配数组时如何模拟等效性

我在 Fortran 例程中有 3 个可分配的一维数组,VX(:)、VY(:)、VZ(:),它们都具有相同的大小。

我需要将它们聚合在一个名为 VARXYZ 的二维数组中,并将其发送到修改“矩阵”的例程。下面的代码可以工作,但会强制将内存大小加倍

      SUBROUTINE TEST(VX,VY,VZ)
      REAL(8), INTENT(INOUT), DIMENSION(:) :: VX,VY,VZ ! They've been allocated with size N in the main
      REAL(8), ALLOCATABLE, DIMENSION(:,:) :: VARXYZ   ! The 'matrix'

      ALLOCATE(VARXYZ(3,N))

      VARXYZ(1,:)=VX(:)
      VARXYZ(2,:)=VY(:)
      VARXYZ(3,:)=VZ(:)
      
      CALL CHANGE_MATRIX(VARXYZ)

      VX(:)=VARXYZ(1,:)
      VY(:)=VARXYZ(2,:)
      VZ(:)=VARXYZ(3,:)
      ...
Run Code Online (Sandbox Code Playgroud)

为了避免“双重分配”,我的第一个错误反应是在一维数组和矩阵的 3 个“列”之间使用 EQUIVALENCE,但显然这是不允许的。

经过一番阅读后,我看到有人推荐使用指针和 TRANSFER 内部函数,但我不知道如何在这里使用它们。

您能否举例说明如何模仿我需要的这种等效机制?

arrays fortran pointers transfer equivalence

6
推荐指数
1
解决办法
167
查看次数

等价类LISP

我需要为等价类编写一个程序并获得此输出...

(equiv '((a b) (a c) (d e) (e f) (c g) (g h))) 
 => ((a b c g h) (d e f))

(equiv '((a b) (c d) (e f) (f g) (a e)))
 => ((a b e f g) (c d))
Run Code Online (Sandbox Code Playgroud)

基本上,A集是一个列表,其中顺序无关紧要,但元素不会出现多次.该函数应该接受对(这是根据一些等价关系相关的元素)的列表,并返回一组等价类,而无需使用迭代或赋值语句(如do,set!等).

然而,设置实用程序,如set-intersection,set-union和消除列表中的重复和内置函数的函数union,intersection以及remove-duplicates被允许的.

非常感谢!

顺便说一下,这不是一个家庭作业问题.我的一个朋友需要这段代码来解决微笑问题.

lisp class equivalence

5
推荐指数
1
解决办法
481
查看次数

在R中,如何测试两个因素是否相等?

我正在生成一大堆具有不同级别的因素,并且我希望能够检测到其中两个何时定义了相同的分区。例如,我要检测以下各项是否相等:

x1 <- factor(c("a", "a", "b", "b", "c", "c", "a", "a"))
x2 <- factor(c("c", "c", "b", "b", "a", "a", "c", "c"))
x3 <- factor(c("x", "x", "y", "y", "z", "z", "x", "x"))
x4 <- factor(c("a", "a", "b", "b", "c", "c", "a", "a"), levels=c("b", "c", "a"))
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

r equivalence r-factor

5
推荐指数
1
解决办法
1251
查看次数

从lambda项转换为组合项

假设有一些数据类型来表达lambda和组合术语:

data Lam ? = Var ?                   -- v
           | Abs ? (Lam ?)           -- ?v . e1
           | App (Lam ?) (Lam ?)     -- e1 e2
             deriving (Eq, Show)

infixl 0 :@
data SKI ? = V ?                     -- x
           | SKI ? :@ SKI ?          -- e1 e2
           | I                       -- I
           | K                       -- K
           | S                       -- S
             deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)

还有一个函数来获取lambda术语的自由变量列表:

fv ? Eq ? ? Lam ? ? [?]
fv (Var v) = [v] …
Run Code Online (Sandbox Code Playgroud)

haskell lambda-calculus equivalence k-combinator s-combinator

5
推荐指数
1
解决办法
1129
查看次数

只用少于运算符测试等价?

假设我有两个类型'T'的文字.我想测试它们是否相同,但类型'T'只有"小于"运算符实现.我怎样才能在C++中测试它?

c++ comparison equivalence operator-keyword

5
推荐指数
1
解决办法
326
查看次数