我决定学习并发性,并想知道来自两个不同进程的指令可以重叠多少种方式。这两个进程的代码只是一个10迭代循环,每次迭代执行3条指令。我发现问题包括将X指令固定在某一点上,然后在考虑到它们必须被订购(过程B的指令4必须始终在指令20之前)的情况下,将空间之间的其他过程的其他X指令装入其中。神秘的组合
我写了一个程序来计算这个数字,看着结果我发现解决方案是n组合k,其中k是在一个进程的整个循环中执行的指令的数量,所以对于10次迭代它会是30,并且n是k * 2(2个过程)。换句话说,n个固定n/2的物体并且必须在空间中适合n/2而没有n/2丢失它们的顺序。
好的问题解决了。不,不是。我不知道为什么会这样,我知道一个组合的定义是,在多少种方式中,你可以从一组n个元素中取出k个元素,这样所有的组都是不同的,但是元素的顺序并不是'没关系。在这种情况下,我们有n个元素,并且我们实际上将它们全部取出,因为所有指令都被执行(n C n)。
如果用一个袋子里有2k个蓝色(A)和红色(B)物体来解释它,并且从包里取出k个物体,那么当实际执行2k个指令时,您仍然只需要k个指令。你能否介绍一下这个问题?
在此先感谢。
为了上帝的爱,段落休息。 – 2010-04-10 12:27:52