English 中文(简体)
两项职能是否平等?
原标题:Are two functions equal?

<><>>

一般问题似乎难以解决。 https://stackoverflow.com/questions/4844243/Function-equality-on-restricted-Functions”


我如何确定职能的平等?

让我们说:

function f() {
    // black box code.
}

function g() {
    // black box code.
}

我们用一个功能的数学定义。 So

if for all x in domain, f(x) === g(x) then f === g

  • How do we handle domains?
  • How can we otherwise determine if f === g

按来源代码分列的核对是sil的,因为

function f(i) {
     return i % 2;
}

function g(i) {
     var returnVal = i % 2;
     return returnVal;
}

绝对平等。 这些是三维例子,但你可以想象,更为复杂的功能是平等而不是来源平等。

您可以假定,<代码>f和g没有我们所关心的副作用。


<><>>

正如“@Pointy”提到,可能最好限制这个领域。 平等功能的使用者应当提供一个领域。

提出两个职能是否平等而不在某个地方界定其范围,是毫无意义的。

简单地说,我们可以假定的领域是所有分类或分类,因此我们需要一种功能:

function equal (f, g, domain) {

}

该领域的结构是毫不相干的,能够使问题尽可能容易。 您还可以假设,<代码>f和g在分类账和不发生故障和复制方面 act然行事;

您可以假设<代码>f和g !

@Pointy再次指出了非决定性职能的一个良好例子。

如果我们限制<条码>f和>;<条码>g是决定性的。

最佳回答

http://en.wikipedia.org/wiki/Rice s_theorem”rel=“noreferer” ,这是不可能做到的。 Rice s theorem:

In computability theory, Rice s theorem states that, for any non-trivial property of partial functions, there is no general and effective method to decide whether an algorithm computes a partial function with that property.

如果你将职能范围限制在限定范围,那么你可以轻率地核实是否使用 forcex: f(x)=g(x)使用 force特武力,但不可能有无限的领域。

问题回答

假设你再谈论 Java的家族功能,这种功能仅限于一种愤怒的争辩,而且没有明显的外部副作用,我仍然认为,普遍不可能确定平等。 考虑:

function a(n) {
  var today = new Date();
  if (today.getFullYear() === 2012 && today.getMonth() === 1 && today.getDate() === 3)
    return 0;
  return n * n;
}

这一职能看起来像很多。

function b(n) { return n * n; }

除2012年2月3日外,还将研究:

function c(n) { return 0; }

如果你真的谈论一个实用的软件来进行这种分析,如果你真的对将要测试的职能的细节没有很大的控制,那么这似乎是不可能的。 也许你可以制定一套职能必须遵循的“规则”,但即便如此,如果不测试该领域的所有价值,确定平等的前景似乎很遥远。

<<>edit>/em>——我刚刚想到:如果你履行两项职能,将如何恢复? 现在,为了确定f=g,你首先必须说明,所有f(n)所交接的职能是否与g(n)所交接的所有职能相同。 Hmm ...

总的来说,没有办法这样做。 你可以测试随机抽样投入的功能,并检查这些投入是否与这些特定价值平等,但一般来说,检验各种可能的投入是不可行的。





相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签