- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
它们(幂等函数和确定性函数)是否只是在给定相同输入的情况下返回相同结果的函数?
还是我遗漏了什么区别?
(如果有区别,请你帮我理解它是什么)
最佳答案
用更简单的话来说:
this
)
this
)
UCASE
CREATE TABLE
GETDATE
DROP TABLE
String.IndexOf
List<T>.Add
DateTime.Now
Random.Next
Directory.Create
[1]
Directory.Create
是幂等的,因为如果目录已经存在,那么它返回一个新的 DirectoryInfo
实例,就好像它只是创建了一个新的文件系统目录(就像 CreateFile
可用于打开现有文件一样)。 UCASE(val)
或 C#/.NET 中
String.IndexOf
都是确定性的,因为输出仅取决于输入。请注意,在实例方法(例如
IndexOf
)中,实例对象(即隐藏的
this
参数)计为输入,即使它是“隐藏的”:
"foo".IndexOf("o") == 1 // first cal
"foo".IndexOf("o") == 1 // second call
// the third call will also be == 1
而在 SQL
NOW()
或 C#/.NET 中
DateTime.UtcNow
不是确定性的,因为即使输入保持不变,输出也会发生变化(请注意,.NET 中的属性 getter 等效于除隐式
this
参数外不接受任何参数的方法):
DateTime.UtcNow == 2016-10-27 18:10:01 // first call
DateTime.UtcNow == 2016-10-27 18:10:02 // second call
幂等性
Dispose()
方法:参见
Should IDisposable.Dispose() implementations be idempotent?
a Dispose method should be callable multiple times without throwing an exception.
X
对
foo.Dispose()
进行初始调用,那么它将调用处理操作,
X
现在可以考虑处理
foo
。执行/控制然后传递给另一个组件
Y
,该组件也尝试处理
foo
,在
Y
调用
foo.Dispose()
之后,它也可以期望
foo
被处理(它是),即使
X
已经处理了它。这意味着
Y
不需要检查
foo
是否已经被释放,从而节省了开发人员的时间 - 并且还消除了第二次调用
Dispose
可能引发异常的错误,例如。
GET
、
HEAD
、
PUT
和
DELETE
是幂等的,但
POST
不是(
https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html )
Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property. Also, the methods OPTIONS and TRACE SHOULD NOT have side effects, and so are inherently idempotent.
DELETE
那么:
Client->Server: DELETE /foo/bar
// `foo/bar` is now deleted
Server->Client: 200 OK
Client->Server DELETE /foo/bar
// foo/bar` is already deleted, so there's nothing to do, but inform the client that foo/bar doesn't exist
Server->Client: 404 Not Found
// the client asks again:
Client->Server: DELETE /foo/bar
// foo/bar` is already deleted, so there's nothing to do, but inform the client that foo/bar doesn't exist
Server->Client: 404 Not Found
所以你在上面的例子中看到
DELETE
是幂等的,因为服务器的状态在最后两个
DELETE
请求之间没有改变,但它不是确定性的,因为服务器返回了第一个请求的
200
而第二个请求的
404
。
关于deterministic - 幂等函数和确定性函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40296211/
我对确定性函数的理解是: always produces the same result for the same input parameters 根据我的理解,下面的函数是非确定性函数 CREAT
根据 Deterministic and Nondeterministic Functions 上的 MSDN SQL BOL(联机丛书)页面,非确定性函数可以“以确定性方式使用” The follo
我今天刚刚开始阅读更多关于马尔可夫链生成器的内容,并且对构建它的整个过程非常感兴趣。根据我的理解, future 状态取决于过去状态到现在的统计数据。 示例: Hello World. Hello D
有人能给我一个程序中确定性错误的例子吗? 谢谢。 最佳答案 void bug() { int *ptr = 0; ptr[0] = 10; } 访问空指针。总是发生。 关于determinis
它们(幂等函数和确定性函数)是否只是在给定相同输入的情况下返回相同结果的函数? 还是我遗漏了什么区别? (如果有区别,请你帮我理解它是什么) 最佳答案 用更简单的话来说: 纯确定性函数 :输出完全且仅
我处于一种情况,我需要生成一个非常大的(~10^16 个元素)具有特定随机稀疏模式的随机矩阵。显然存储所有这些元素是完全不可行的。在任何给定时间只需要少数元素,因此可以按需绘制它们 - 但是,一旦存储
让我们仔细看看Ticker example code在 Go 的时间包中: package main import ( "fmt" "time" ) func main() {
某些 Prolog 目标的确定性成功问题已经一次又一次地出现在 - 至少 - 以下问题: Reification of term equality/inequality Intersection an
我正在构建一个 Bitbake 配方并收到以下错误消息: ERROR: When reparsing virtual:native:/path/to/poky/meta/recipes-devtool
我在使用 Symfony2 时遇到了这个奇怪的错误。在本地主机中,一切正常,但是当我在服务器中尝试时,我收到此 PHP 错误: [06-Mar-2013 22:04:50 UTC] PHP Fatal
我正在使用 Scipy.stats.multivariate_normal从多元正态分布中抽取样本。像这样: from scipy.stats import multivariate_normal #
我正在开发一个 Groovy 应用程序,它必须为用户提供一个包含加密查询参数的链接。目前我们使用 AES 加密算法,所有链接都使用相同的 IV。我们知道这很糟糕(因此我们想要切换的原因),但这样做的原
在 DB2 V5R4 中,当您修改 DETERMINISTIC UDF 的功能时,它会返回缓存的响应一段时间... 有什么方法可以重置缓存的响应? 提前致谢。 最佳答案 它返回缓存的响应是什么?是通过
我目前正在尝试在 Keras 中实现 DDPG。我知道如何更新评论家网络(普通 DQN 算法),但我目前坚持更新 Actor 网络,它使用等式: 因此,为了将 Actor 网络 wrt 的损失减少到其
在数据访问限制方面,Oracle 函数中的确定性 和并行启用子句有什么区别? 最佳答案 如 documentation on the CREATE FUNCTION statement 中所述: DE
Oracle 函数中的deterministic 和parallel enable 子句 在数据访问限制方面有什么区别? 最佳答案 如 documentation on the CREATE FUNC
我使用 Stanford Core NLP 构建了一个 Java 解析器。我发现在使用 CORENLP 对象获得一致结果时存在问题。我正在为相同的输入文本获取不同的实体类型。对我来说,这似乎是 Cor
TL;DR:我非常希望 in_edges 的迭代顺序在我的图表上(adjacency_list 和 edge_list of setS)是确定性的,但据我所知,迭代的顺序是由只是指针的比较运算符确定比
我是 Rust 的新手,正在尝试了解 Cargo 的东西。我在他们的常见问题解答中读到关于 "why do binaries have Cargo.lock in version control, b
假设我有一个观点 MYVIEW COL1[CARCHAR2] SORTINGCOL[NUMBER] "itm1" 100 "itm2" 101 "it
我是一名优秀的程序员,十分优秀!