标签: proof

有限时间内两个FSM等价的一般证明?

是否存在总是需要有限时间的两个(确定性)有限状态机的等价性的一般证明?也就是说,给定两个FSM,你能证明给定相同的输入它们总是产生相同的输出而不需要实际执行FSM(可能是非终止的吗?).如果确实存在这样的证据,那么时间复杂度是多少?

theory proof state-machine fsm

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

大哦符号O((log n)^ k)= O(log n)?

在big-O表示法中O((log n)^k) = O(log n),k某些常量(例如,循环的对数),是真的吗?

我的教授告诉我,这种说法是正确的,但是他说这将在课程的后期证明.我想知道你们中是否有人能证明其有效性,或者有一个链接我可以确认是否属实.

big-o proof

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

稳定的比较排序与O(n*log(n))时间和O(1)空间复杂度

在浏览维基百科的排序算法列表时,我注意到没有稳定的比较排序具有O(n*log(n))(最坏情况)时间复杂度和O(1)(最坏情况)空间复杂度.这肯定看起来像理论界限,但我找不到更多关于它的信息.

如何证明这一点?

注意:我知道O(n*log(n))比较排序的最坏情况时间复杂度的下限.

sorting algorithm complexity-theory proof

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

用big-O证明N ^ 2是O(2 ^ N)

我可以清楚地看到,N ^ 2受到c2 ^ N的限制,但我如何通过使用big-O的形式定义来证明它.我可以通过MI简单地证明这一点

这是我的尝试..根据定义,对于任何n> n0,存在一个常数C,其中f(n)<= Cg(n)其中f(n)= n ^ 2且g(n)= 2 ^ n

我应该记录到两边并解决C?

还有一个关于斐波纳契序列的问题,我想解决递归关系.

int fib(int n){
   if(n<=1) return n;
   else return fib(n-1) + fib(n-2);
Run Code Online (Sandbox Code Playgroud)

等式是......

T(n) = T(n-1)+T(n-2)+C // where c is for the adding operation
所以
T(n) = T(n-2) + 2T(n-3) + T(n-4) + 3c 

还有一个

T(n) = T(n-3) + 3T(n-4) + 3T(n-5) + T(n-6) + 6c

然后我开始迷失形成一般方程式我的模式有点像帕斯卡三角形?

 t(n) = t(n-i) + aT(n-i-1) + bT(n-i-2) + ... + kT(n-i-i) + C 

big-o proof

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

是否有任何按位运算符法?

根据代数定律的思考,我想知道在比特操作领域是否存在任何官方指导线,类似于代数.

代数例子

a - b =/= b - a

让我们a = 7b = 5

  • a - b = 2
  • b - a = -2

让我们a = 10b = 3

  • a - b = 7
  • b - a = -7

因此if a > b,b - a将是负面的等价物a - b.因此,我们可以

|a - b| = |b - a|.

其中|x|表示绝对值x.

按位示例

a | b =/= a …

computer-science boolean-logic proof bitwise-operators

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

我们如何通过归纳证明二进制搜索是正确的?

我很难理解感应如何与一些不变量一起用来证明算法的正确性.也就是说,如何找到不变量,何时使用归纳假设 - 特别是二元搜索?我还没有找到直观的回复,所以我希望有人可以在这里阐述一下这个话题.

algorithm search proof binary-search

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

如何在Coq中结束此证明

我设法将目标减少到了

(fun x0 : PSR => me (x x0)) = x
Run Code Online (Sandbox Code Playgroud)

我知道这reflexivity会有效,但出于教学原因,我宁愿继续减少它.

me是一个身份功能,所以unfold me简化它

(fun x0 : PSR => x x0) = x
Run Code Online (Sandbox Code Playgroud)

这只是一个将函数应用于x虚拟变量的匿名函数x0,所以你可以说两边都只是函数x.如果可能的话,我想在双方达成相同的表达方式.

proof coq

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

仅限数学证明助理

大多数证明助手都是具有依赖类型的函数式编程语言.他们可以证明程序/算法.相反,我感兴趣的是最适合数学的证明助手,而且只有(例如微积分).你能推荐一个吗?我听说过Mizar,但我不喜欢源代码已关闭,但如果最好是数学,我会使用它.Agda和Idris等新语言如何适用于数学证明?

proof agda idris isar proof-of-correctness

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

为什么贪婪算法是最优的?

Codility,第14课,任务TieRopes(https://codility.com/demo/take-sample-test/tie_ropes).简而言之,问题是将A正整数列表划分为具有至少总和的(连续)子列表的最大数量K.

我只想出一个贪婪的解决方案,因为这就是课程的名称.它通过了所有测试,但我不知道为什么它是一个最佳解决方案(如果它是最佳的).

int solution(int K, vector<int> &A) {
    int sum = 0, count = 0;
    for (int a : A)
    {
        sum += a;
        if (sum >= K)
        {
            ++count;
            sum = 0;
        }
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我这个解决方案是否以及为何最佳?

algorithm proof greedy

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

如何在haskell中证明类型级列表属性?

我有这些类型的家庭:

type family xs ++ ys where
  '[]      ++ ys = ys
  (x : xs) ++ ys = x : (xs ++ ys)

type family Drop n xs where
  Drop  O         xs  = xs
  Drop (S n) (_ : xs) = Drop n xs

type family Length xs where
  Length '[] = O
  Length  (x : xs) = S (Length xs)
Run Code Online (Sandbox Code Playgroud)

在某些时候,GHC 想要证明

forall a. Drop (Length a) (a ++ c) ~ c
Run Code Online (Sandbox Code Playgroud)

我曾经把它推到一些构造函数的上下文中。

我如何普遍证明这个属性?

haskell types proof type-level-computation

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