随笔分类 - 算法
摘要:给定n个数{1...n},如何给出这n个数的全排列呢?给定一个整数k,我们给它一个向左或向右的方向,k(->)或者k()6(->)3(->)1()4(->)那么只有3,5,6是可以移动的。全排列的算法如下:从1(m的p,改变所有p的箭头方向例如当n=3时:1()2()1()
阅读全文
摘要:并行归并排序在程序开始时,会将n/comm_comm个键值分配给每个进程,程序结束时,所有的键值会按顺序存储在进程0中。为了做到这点,它使用了树形结构通信模式。当进程接收到另一个进程的键值时,它将该键值合并进自己排序的键值列表中。编写一个程序实现归并排序。进程0应该读入n的值,将其广播给其余进程。...
阅读全文
摘要:NIM取子游戏是由两个人面对若干堆硬币(或石子,或。。)进行的游戏,游戏由两个人进行,设有k>=1堆硬币,各堆含有n1,n2,n3,n4.....,nk个硬币,游戏的目的就是选取最后剩下的硬币。游戏规则如下:1)游戏人交替进行游戏;2)当轮到每个游戏人取子时,选择这些硬币中的一堆,并从所选的堆中取走...
阅读全文
摘要:Pl/0语言文法的BNF表示:〈程序〉→〈分程序>.〈分程序〉→[][][]〈语句〉→CONST{,};→=→{}→VAR{,};→{|}→;{}→procedure;→|||||||→:=→begin{;}→|ood→[+|-]{}→{}→||()→+|-→*|/→=|#||>=→ifthen→c...
阅读全文
摘要:蒙特卡洛方法实现计算圆周率的方法比较简单,其思想是假设我们向一个正方形的标靶上随机投掷飞镖,靶心在正中央,标靶的长和宽都是2 英尺。同时假设有一个圆与标靶内切。圆的半径是1英尺,面积是π平方英尺。如果击中点在标靶上是均匀分布的(我们总会击中正方形),那么飞镖击中圆的数量近似满足等式飞镖落在圆内的次数...
阅读全文