小编sun*_*ica的帖子

python的sorted()函数是否保证稳定?

文档不保证.是否还有其他记录的地方?

我猜它可能是稳定的,因为列表上的排序方法保证是稳定的(注意第9点:"从Python 2.3开始,sort()方法保证稳定"),并且排序在功能上类似.但是,我无法找到任何明确的消息来源.

目的:在两个记录中主键相等的情况下,我需要根据主键和辅助键进行排序.如果sorted()保证稳定,我可以对辅助键进行排序,然后对主键进行排序并获得我需要的结果.

PS:为了避免任何混淆,我使用稳定的意思是"如果它保证不改变比较相等的元素的相对顺序,则排序是稳定的".

python sorted stable-sort

83
推荐指数
3
解决办法
3万
查看次数

如何禁用烦人的"括号完成"?

每当我输入一个(,[,或{,Notepad ++,用相应的右括号完成它.我发现这个'功能'很烦人,想要禁用它.它似乎没有列在首选项对话框和搜索在线文档没有产生任何有用的结果.这里有人知道隐藏的选项在哪里吗?我目前正在使用Notepad ++ 5.0.3.

notepad++ code-completion

44
推荐指数
2
解决办法
3万
查看次数

Strawberry Perl是否仍然会删除/ site/lib和/ site/bin内容?

问题如何在不擦除\ perl\site\lib \和\ perl\site\bin \的情况下升级草莓perl?在2011年被问到,看起来草莓确实抛弃了用户在我们升级到新版本时所做的任何CPAN安装.这仍然是这样吗?我发现亚当肯尼迪的评论似乎有关,但我不确定改变是否真的发生了,其含义是什么.

由于草莓Perl据说是"100%开源",我试图寻找一个开发网站,我们可以获得更多细节并查看讨论的地方,但我找不到任何,Strawberryperl.com网站奇怪地缺乏这方面的任何信息.甚至它的维基百科页面也(稍微)提供更多信息.(编辑:我发现http://code.google.com/p/strawberry-perl/可能是链接的整洁中央门户网站,也是http://search.cpan.org/~kmx/Perl-Dist-Strawberry -3.012/script/perldist_strawberry非常有用.)

此外,如果Strawberry仍然这样做,我该如何制作模块的本地备份副本?我不想使用CPAN的autobundle并从头开始不必要地重新下载所有内容.

更新以供将来参考:从我收集的评论中,由于site/lib和site/bin中的内容目前在Strawberry Perl中依赖于构建,因此有必要将它们擦除并在安装新版本时重新开始.如果Strawberry引入一个单独的arch目录来存储依赖于体系结构的东西,这种必要性可能会消失.

perl strawberry-perl

23
推荐指数
1
解决办法
476
查看次数

在brainfuck程序中检测无限循环

我用MATLAB脚本语言编写了一个简单的brainfuck解释器.它被随机的bf程序执行(作为遗传算法项目的一部分).我面临的问题是,程序在相当多的情况下都会出现无限循环,因此GA会陷入困境.
所以,我需要一种机制来检测无限循环并避免在bf中执行该代码.
一个明显的(微不足道的)案例是我有的时候

[]
Run Code Online (Sandbox Code Playgroud)

我可以检测到这一点并拒绝运行该程序.
对于非平凡的情况,我发现基本思想是:确定循环的一次迭代如何改变当前单元格.如果变化为负,我们最终将达到0,所以这是一个有限的循环.否则,如果更改是非负的,则它是无限循环.
对于单个循环来说,实现这一点很容易,但是使用嵌套循环会变得非常复杂.例如,(在下面的(1)中指的是单元格1的内容等)

++++ Put 4 in 1st cell (1)
>+++ Put 3 in (2)
<[   While( (1) is non zero)
    --   Decrease (1) by 2
    >[   While( (2) is non zero)
        -    Decrement (2)
        <+   Increment (1) 
    >]   
    (2) would be 0 at this point
    +++  Increase (2) by 3 making (2) = 3
<]   (1) was decreased by 2 and then increased by 3, so net effect is increment
Run Code Online (Sandbox Code Playgroud)

因此代码会一直运行.然而,对单元格1上的+和 - 的完成次数的天真检查会说-s的数量更多,因此不会检测到无限循环. …

algorithm interpreter infinite-loop halting-problem brainfuck

22
推荐指数
4
解决办法
5731
查看次数

如何在Lisp中记忆递归函数?

我是Lisp的初学者.我正在尝试记忆递归函数来计算Collat​​z序列中的项数(对于Project Euler中的问题14 ).我的代码是:

(defun collatz-steps (n)
  (if (= 1 n) 0
       (if (evenp n) 
           (1+ (collatz-steps (/ n 2)))
           (1+ (collatz-steps (1+ (* 3 n)))))))

(defun p14 ()
  (defvar m-collatz-steps (memoize #'collatz-steps))
  (let 
      ((maxsteps (funcall m-collatz-steps 2))
       (n 2)
       (steps))
    (loop for i from 1 to 1000000
          do 
          (setq steps (funcall m-collatz-steps i))
          (cond 
            ((> steps maxsteps) 
             (setq maxsteps steps)
             (setq n i))
            (t ())))
    n))


(defun memoize (fn)
  (let ((cache (make-hash-table :test #'equal)))
    #'(lambda (&rest …
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp memoization

18
推荐指数
1
解决办法
4345
查看次数

为什么垃圾收集语言中不允许free()?

我正在阅读维基百科上的C#条目,并遇到:

无法明确释放托管内存; 相反,它会自动被垃圾收集.

为什么在具有自动内存管理的语言中,甚至不允许手动管理?我可以看到,在大多数情况下它没有必要,但是如果你的内存紧张并且不想依赖GC是聪明的话,它会不会派上用场?

free garbage-collection memory-management

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

如何在Rust 1.0中读取用户的整数输入?

我发现的现有答案都是基于from_str(例如 有效地从控制台读取用户输入),但显然from_str(x)已经改变为x.parse()Rust 1.0.作为一个新手,考虑到这一变化,原始解决方案应该如何适应并不明显.

从Rust 1.0开始,从用户那里获取整数输入的最简单方法是什么?

integer user-input input rust

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

如何从模块的CPAN页面判断它是否在核心发行版中?

例如,通过去当时间上search.cpan.org ::高分辨率文件,有没有在页面本身现在模块为核心的Perl发行版的一部分一些指示?我知道,我通常能找到了一些google搜索,但我想知道是否有更简单的方法.

perl cpan perl-module perl-core

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

在Perl中,如何确定我的文件是用作模块还是作为脚本运行?

假设我有一个Perl文件,其中只有在我被称为脚本时才需要运行的部分.我记得有时读过在main()方法中包含这些部分并做一个

main() unless(<some condition which tests if I'm being used as a module>);
Run Code Online (Sandbox Code Playgroud)

但我忘了条件是什么.搜索Google并没有发现任何有益的结果.有人能指出正确的地方寻找这个吗?

perl module modulino

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

如何将已经签出的svn存储库导入Eclipse?

我有一个Subversion存储库,我已经检查过,并在我的本地硬盘上.现在,如何将其导入Eclipse?

当我选择File> Import并选择SVN时,只有一个选项可以再次从服务器签出项目.文件>新项目似乎适用于我们从头开始创建新项目的项目.

eclipse svn repository

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