问题列表 - 第24534页

关于"循环不变量"的观点,这些在行业中经常使用吗?

我正在回想起我在大学一年级的那一年(五年前),当时我参加了一个考试,从而完成了计算机科学的入门课程.有一个关于循环不变的问题,我想知道如果循环不变是真的有必要在这种情况下,或者如果问题只是一个坏榜样......问题是写一个迭代定义为一个阶乘函数,然后证明功能是正确的.

我为阶乘函数提供的代码如下:

public static int factorial(int x)
{
     if ( x < 0 ){
         throw new IllegalArgumentException("Parameter must be >= 0");
     }else if ( x == 0 ){
         return 1;
     }else{
         int result = 1;
         for ( int i = 1; i <= x; i++ ){
             result*=i;
         }
         return result;
     }
}
Run Code Online (Sandbox Code Playgroud)

我自己的正确性证明是一个案例的证明,并且每一个我断言它的定义是正确的(x!对于负值是未定义的,0!是1,x!是1*2*3 ......*x对于x)的正值.教授希望我用循环不变量来证明循环; 但是,我的论点是"按定义"是正确的,因为"x!"的定义 对于正整数x是"1 ... x的整数的乘积",而else子句中的for循环只是该定义的字面翻译.在这种情况下,真正需要一个循环不变量作为正确性的证明吗?在循环不变量(以及正确的初始化和终止条件)成为正确性证明之前,循环必须有多复杂?

另外,我想知道......行业中使用这种正式证据的频率是多少?我发现我的课程大约有一半是非常理论性和证据性的,大约一半是非常实施和编码,没有任何正式或理论材料.这些在实践中重叠多少?如果您确实使用了行业中的样张,那么何时应用它们(总是,只有它很复杂,很少,从不)?

编辑
如果我们自己,相信这一块的代码是正确的,可以说服别人(非正式)它是正确的,并有到位的单元测试,以被正确性的形式证明需要什么样的程度?

language-agnostic

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

使用Objective-C对字符串进行URLE编码

我正在尝试对字符串进行URL编码以形成来自objective-c的GET请求.

NSString *params = @"'Decoded data!'/foo.bar:baz";

NSRunAlertPanel( @"Error", [params urlEncoded], @"OK", nil, nil );
Run Code Online (Sandbox Code Playgroud)

这是扩展NSString的类别

    -(NSString *) urlEncoded
{
    NSString *encoded = (NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                   NULL,
                                                   (CFStringRef)self,
                                                   NULL,
                                                   (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
                                                   kCFStringEncodingUTF8 );
    return encoded;
}
Run Code Online (Sandbox Code Playgroud)

所以第一次运行它我就回来了

1606410046ecoded          1606410784ata2270.000000foo.bar0X1.001716P-1042baz
Run Code Online (Sandbox Code Playgroud)

从对话框中.

我再次运行后立即得到了这个

1606410046ecoded          1606410944ata227369374562920703448982951250259562309742470533728899744288431318481119278377104028261651081181287077973859930826299575521579020410425419424562236383226511593137467590082636817579938932512039895040.000000foo.bar0X1.66E6156303225P+771baz
Run Code Online (Sandbox Code Playgroud)

然后,如果我再次运行它,它会回到第一个.这真的很奇怪.

如果params设置为@"&"或@"",我只需在对话框中找回"2"(不带引号).

还有一种方法可以在警告对话框中显示%符号吗?

谢谢

string cocoa objective-c urlencode

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

功能指针演示

检查以下代码

int add(int a, int b)
{
    return a + b;
}

void functionptrdemo()
{
    typedef int *(funcPtr) (int,int);
    funcPtr ptr;
    ptr = add; //IS THIS CORRECT?
    int p = (*ptr)(2,3);
    cout<<"Addition value is "<<p<<endl;
}
Run Code Online (Sandbox Code Playgroud)

在我尝试使用相同的函数签名为函数ptr分配函数的地方,它显示编译错误为错误C2659:'=':函数作为左操作数

c++ pointers function-pointers

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

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

标准的Sun javac可以进行增量编译吗?

最近我开始使用Eclipse的java编译器,因为它比标准的javac快得多.我被告知它更快,因为它执行增量编译.但我仍然有点不确定,因为我找不到任何关于eclispse和sun的编辑器"增量功能"的权威文档.是不是Sun的编译器总是编译每个源文件而Eclipse的编译器只编译已更改的文件和那些受此类更改影响的文件?

编辑:我没有使用Eclipse autobuild功能,而是我正在设置

-Dbuild.compiler=org.eclipse.jdt.core.JDTCompilerAdapter
Run Code Online (Sandbox Code Playgroud)

为我的蚂蚁构建.

java eclipse compiler-construction sun incremental-compiler

25
推荐指数
2
解决办法
9223
查看次数

活动堆栈

有没有办法在调试或正常运行的某个时刻对活动堆栈进行虚拟化?

android

12
推荐指数
1
解决办法
4306
查看次数

帮助将简单的jQuery转码为mootools

$(".container").hover(
     function(){
              $(".child-1").hide(0);
              $(".child-2").show(0);
     },function(){
              $(".child-1").show(0);
              $(".child-2").hide(0);
});
Run Code Online (Sandbox Code Playgroud)

我有一个项目要求我使用mootools,但我从未使用过mootools,而jquery对我来说更有意义.有人能告诉我这个例子在mootools中的样子吗?谢谢

javascript jquery mootools transcoding

0
推荐指数
1
解决办法
172
查看次数

if-else结构

我有这些冗长的陈述,我将在这里称为x,y等.我的条件语句的结构如下:

if(x || y || z || q){
    if(x)
       do someth
    else if (y)
       do something

    if(z)
       do something
    else if(q)
       do something
}
else
    do smthing
Run Code Online (Sandbox Code Playgroud)

有没有更好,更短的方式来写这个东西?谢谢

java if-statement readability

12
推荐指数
1
解决办法
416
查看次数

我可以在android上编写自己的事件:imeOptions ="actionSearch"吗?

我正在使用android:imeOptions ="actionSearch"

在editText中我的问题是,如果用户在Softkeyboard上按下Searchbutton,我可以编写自己的事件吗?

我希望执行软键盘搜索按钮的功能类似于我们在android活动上使用的按钮.

任何帮助都会得到满足.

android android-edittext android-activity

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

函数重载

我找到了这个代码,我不确定是否应该发生重载.

void print( int (*arr)[6], int size );

void print( int (*arr)[5], int size );
Run Code Online (Sandbox Code Playgroud)

如果我将指针传递给4个元素的数组会发生什么,它应该来...

任何线程都会有所帮助.

c++

4
推荐指数
2
解决办法
234
查看次数