小编Eri*_* Yu的帖子

图灵完整性修改版Brainfuck

Brainfuck图灵完备如果细胞位,+和-操作简单地拨动了一下?是否有一个简单的证据表明,无论细胞大小如何,类似Brainfuck的语言都是图灵完整的,或者我是否需要考虑一个模拟图灵机的程序?我怎么知道是否没有?

编辑:我找到了一个问题的答案:带有位单元的Brainfuck被称为Boolfuck.普通的Brainfuck可以减少到它,所以Boolfuck是Turing-complete.

computability brainfuck

7
推荐指数
1
解决办法
360
查看次数

分析多进程Python脚本时出现神秘的pickle错误

multiprocessing正在使用模块,我正在使用UpdateMessage对象(我自己的类),通过multiprocessing.Queue对象发送,在进程之间进行通信.这是类:

class UpdateMessage:
    def __init__(self, arrayref, rowslice, colslice, newval):
        self.arrayref = arrayref
        self.rowslice = rowslice
        self.colslice = colslice
        self.newval = newval
    def do_update(self):
        if self.arrayref == 'uL':
            arr = uL
        elif self.arrayref == 'uR':
            arr = uR
        else:
            raise Exception('UpdateMessage.arrayref neither uL nor uR')
        arr[self.rowslice, self.colslice] = self.newval
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,它完全正常.但是,当我使用cProfile或运行它时profile,它会出现以下错误:

_pickle.PicklingError: Can't pickle <class '__main__.UpdateMessage'>: attribute lookup __main__.UpdateMessage failed
Run Code Online (Sandbox Code Playgroud)

它似乎试图挑选课程,但我不明白为什么会发生这种情况.我的代码没有这样做,没有它就可以正常工作,所以它可能就是multiprocessing模块.但为什么需要腌制UpdateMessage,我该如何修复错误呢?

编辑:这是发送的代码的一部分UpdateMessage(脚本的多个部分执行此操作,但所有都以相同的方式):

msg = UpdateMessage(uLref, refer[0] …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing profiling

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