问题标签 [invariants]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 代码跳过 Contract.Requires
我正在尝试使用 c# 合同编写此方法...但是在调试时,它完全忽略了 Contract.requires 和 CheckRep() 我是否使用不正确?
arrays - 在 Ada 中查找数组中的最大值
我正在做一个 Ada 程序,其中有很多不同的函数与数组混淆,我得到了所有的排序函数,我现在坚持使用循环不变量来检索数组中的最大值来设计该函数的循环。有什么帮助吗?
opengl - GPU供应商之间的OpenGL确定性渲染
我目前正在使用 OpenGL 编写科学成像应用程序。
我想知道当我的代码(C++ / OpenGL 和简单的 GLSL)在不同的硬件(ATI 与 NVidia、各种 NVidia 代和各种操作系统)上执行时,OpenGL 渲染(就从 FBO 检索的像素而言)是否应该是完全确定的)?
更准确地说,每次我在任何硬件(可以运行基本的 GLSL 和 OpenGL 3.0)上运行我的代码时,我都需要完全相同的像素缓冲区......
那可能吗?我应该考虑一些建议吗?
如果不可能,是否有特定品牌的视频卡(可能是 Quadro?)可以在改变主机操作系统的同时做到这一点?
matlab - 在 MATLAB 中识别相似三角形的方向
我有一个相似三角形的 BW 位图。我试图确定每个三角形所面对的方向。“面对”是指以一种在所有三角形中保持不变的方式来描述方向,例如最长边中线的方向。
到目前为止,我可以单独识别三角形,但我不知道找出每个三角形方向的最佳方法是什么。
作为第一个想法,我考虑使用霍夫变换来拟合每个三角形边的线条。一旦我有了 3 个边,我就可以计算它们的交点,然后我就得到了 3 个顶点的坐标。从 3 个顶点很容易找出最长边的中位数。
我对这种方法的问题是我从未使用过霍夫变换,而且我不知道编写一个找到边并以我可用于计算交点的方式返回它们的函数有多难。您能否将我链接到一些文章或简要解释如何使用 Hough 变换在表示中找到我可以用来计算交叉点的边?
我的另一个想法是直接在位图图像上使用旋转不变矩,而不通过霍夫变换识别它们的侧面。
我对这个解决方案的问题是,当我使用时刻来描述一个方向时,我不知道它的“含义”是什么。如果我使用不变矩,如何定义参考方向?
带有已识别对象的示例图像:
单个对象
c - 是否有用于 C 程序的静态不变发现工具?
我正在寻找一种可以在 C 程序中静态发现不变量的工具。我检查了Daikon,但它只是动态地发现不变量。
是否有适合我正在寻找的工具?谢谢!
computer-science - 这个语句可以被视为类不变量吗?
这是一个非常普遍的想法,但让我们在此示例中使用 C#。
鉴于
- 我有一个一次性类
Foo
,即它实现IDisposable
。 Foo
有一个布尔标志disposed
,在被调用之前为假Dispose
,之后为真。Foo
throws的所有公共方法在调用时ObjectDisposedException
如果disposed
为真。
有没有这个说法
的任何方法
Foo
,除了,将在已释放的实例上调用时Dispose
抛出一个。ObjectDisposedException
Foo
描述一个不变量Foo
?
function - 用于计算阶乘的函数的循环不变量
我很难正确识别以下函数的循环不变量:
我已经确定循环不变量是x = 1 OR x = y!
因为该语句作为前置条件成立并且作为后置条件成立。
它似乎并不适用于每次迭代,例如如果 y = 3,那么在循环的第一次迭代中,x = 1 * 3 等于 3 而不是 3!相当于 6。
我想这就是我真正困惑的地方。一些书籍文章指出,循环不变量是在开始或循环时必须等于真(因此是前置条件)并且在循环结束时也必须为真(因此是后置条件)但不一定需要的语句在循环的中途保持真实。
上述函数的正确循环不变量是什么?
d - D 类不变量调用 const 函数
为什么以下会引发编译器错误:
main.d(14): Error: cannot call public/export function f from invariant
.
我理解不变的概念;您想在每次公开调用方法之间检查类的状态。
但是,不可变或 const 成员函数不能改变类的状态(除非this
通过了?),所以围绕这些函数的不变检查是多余的。可以将不变量调用放在一边,并且不会出现无限循环,从而导致编译器错误错误。
自从我使用对象创建层次结构以来,我就想到了这一点,这些对象定义:
在课堂内使用这个小功能更容易,但也可能在课堂外使用。但是将其定义为 public 违反了 invariant()。
c++ - C++:STL:set:存储值常量
具有以下代码:
我无法编译此代码(MSVCPP 11.0):
这有助于编译:
问题:我知道map
并将multimap
它们的值存储为pair(const K, V)
其中 K 是键而 V 是值。我们不能改变 K 对象。但是set<T>
并将multiset<T>
他们的对象存储为T
,而不是const T
。那么为什么我需要这个 const 演员?