关注高考帮公众号
(www_gaokao_com)了解更多高考资讯
中学生考试升学必备
面包校园APP
大学生必备APP
您现在的位置: &
& 寻找数学的基础:集合论的创立(2)
来源:网络资源
有限和无穷的这个特点可以从下面的小故事反映出来,这个故事据说是希尔伯特说的。
某一个市镇只有一家旅馆,这个旅馆与通常旅馆没有不同,只是房间数不是有限而是无穷多间,房间号码为1,2,3,4,&&我们不妨管它叫希尔伯特旅馆。这个旅馆的房间可排成一列的无穷集合(1,2,3,4,&),称为可数无穷集。
有一天开大会,所有房间都住满了。后来来了一位客人,坚持要住房间。旅馆老板于是引用&旅馆公理&说:&满了就是满了,非常对不起!&。正好这时候,聪明的旅馆老板的女儿来了,她看见客人和她爸爸都很着急,就说:&这好办,请每位顾客都搬一下,从这间房搬到下一间&。于是1号房间的客人搬到2号房间,2号房间的客人搬到3号房间&&依此类推。最后1号房间空出来,请这位迟到的客人住下了。
第二天,希尔伯特旅馆又来了一个庞大的代表团要求住旅馆,他们声称有可数无穷多位代表一定要住,这又把旅馆经理难住了。老板的女儿再一次来解围,她说:&您让1号房间客人搬到2号,2号房间客人搬到4号&&,k号房间客人搬到2k号,这样,1号,3号,5号,&&房间就都空出来了,代表团的代表都能住下了。&
过一天,这个代表团每位代表又出新花招,他们想每个人占可数无穷多间房来安排他们的亲戚朋友,这回不仅把老板难住了,连女儿也被难住了。聪明的女儿想了很久,终于也想出了办法。(因为比较繁琐,这里不详细介绍了)
希尔伯特旅馆越来越繁荣,来多少客人都难不倒聪明的老板女儿。后来女儿进了大学数学系。有一天,康托尔教授来上课,他问:&要是区间[0,1]上每一点都占一个房间,是不是还能安排?&她绞尽脑汁,要想安排下,终于失败了。康托尔教授告诉她,用对角线方法证明一切想安排下的方案都是行不通的。
由康托尔的定理,可知无穷集合除了可数集台之外还有不可数集合,可以证明:不可数集合的元素数目要比可数集合元素数目多得多。为了表示元素数目的多少,我们引进&基数&也称&势&的概念,这个概念是自然数的自然推广。可以与自然数集合N一一对应的所有集合的共同性质是它们都具有相同的数目,这是最小的无穷基数记做&。(&是希伯来文字母第一个,读做阿列夫)。同样,连续统(所有实数或[0,1]区间内的所有实数集合)的基数是C.康托尔还进一步证明,C=2&。,问题是C是否紧跟着&。的第二个无穷基数呢?这就是所谓连续统假设。
只给高中生用的高考APP,家长请止步!
(挑大学?选专业,一步到位!)
高校分数线
专业分数线
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
<option value="
2017年2018年
百科词条:November 21st, 2012 | 荒唐 |
Categories:
| Comments: Comments Off on 【数学科普】数系为什么要一次又一次地扩充?
stack node_stack;
set node_set;
AllPathFromSourceToDestination(node s, node d) {
& & node_stack.push(s);
& & node_set.add(s); //mark each node in the path
& & // for each node v that adjacent with node s:
& & for_each(node v, adjacent(v,s)) {
& & & & if(v == d) {
& & & & & & Output(node_stack);
& & & & } else {
& & & & & & if(node_set.has(v)==false) {
& & & & & & & & AllPathFromSourceToDestination(v, d);
& & & & & & }
& & & & }
& & }
& & node_set.del(s);
& & node_stack.pop(s);
January 18th, 2011 | 荒唐 |
Categories: ,
| Comments: Comments Off on Finding all paths from source to destination
static const unsigned int network02[][2] = {
& & { 0, 1},
static const unsigned int network03[][2] = {
& & { 1, 2},
& & { 0, 2},
& & { 0, 1},
static const unsigned int network04[][2] = {
& & { 0, 1}, { 2, 3},
& & { 0, 2}, { 1, 3},
& & { 1, 2},
static const unsigned int network05[][2] = {
& & { 0, 1}, { 3, 4},
& & { 2, 4},
& & { 2, 3}, { 1, 4},
& & { 0, 3},
& & { 0, 2}, { 1, 3},
& & { 1, 2},
static const unsigned int network06[][2] = {
& & { 1, 2}, { 4, 5},
& & { 0, 2}, { 3, 5},
& & { 0, 1}, { 3, 4}, { 2, 5},
& & { 0, 3}, { 1, 4},
& & { 2, 4}, { 1, 3},
& & { 2, 3},
static const unsigned int network07[][2] = {
& & { 1, 2}, { 3, 4}, { 5, 6},
& & { 0, 2}, { 3, 5}, { 4, 6},
& & { 0, 1}, { 4, 5}, { 2, 6},
& & { 0, 4}, { 1, 5},
& & { 0, 3}, { 2, 5},
& & { 1, 3}, { 2, 4},
& & { 2, 3},
static const unsigned int network08[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 6, 7},
& & { 0, 2}, { 1, 3}, { 4, 6}, { 5, 7},
& & { 1, 2}, { 5, 6}, { 0, 4}, { 3, 7},
& & { 1, 5}, { 2, 6},
& & { 1, 4}, { 3, 6},
& & { 2, 4}, { 3, 5},
& & { 3, 4},
static const unsigned int network09[][2] = {
& & { 0, 1}, { 3, 4}, { 6, 7},
& & { 1, 2}, { 4, 5}, { 7, 8},
& & { 0, 1}, { 3, 4}, { 6, 7}, { 2, 5},
& & { 0, 3}, { 1, 4}, { 5, 8},
& & { 3, 6}, { 4, 7}, { 2, 5},
& & { 0, 3}, { 1, 4}, { 5, 7}, { 2, 6},
& & { 1, 3}, { 4, 6},
& & { 2, 4}, { 5, 6},
& & { 2, 3},
static const unsigned int network10[][2] = {
& & { 4, 9}, { 3, 8}, { 2, 7}, { 1, 6}, { 0, 5},
& & { 1, 4}, { 6, 9}, { 0, 3}, { 5, 8},
& & { 0, 2}, { 3, 6}, { 7, 9},
& & { 0, 1}, { 2, 4}, { 5, 7}, { 8, 9},
& & { 1, 2}, { 4, 6}, { 7, 8}, { 3, 5},
& & { 2, 5}, { 6, 8}, { 1, 3}, { 4, 7},
& & { 2, 3}, { 6, 7},
& & { 3, 4}, { 5, 6},
& & { 4, 5},
static const unsigned int network11[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 6, 7}, { 8, 9},
& & { 1, 3}, { 5, 7}, { 0, 2}, { 4, 6}, { 8,10},
& & { 1, 2}, { 5, 6}, { 9,10}, { 0, 4}, { 3, 7},
& & { 1, 5}, { 6,10}, { 4, 8},
& & { 5, 9}, { 2, 6}, { 0, 4}, { 3, 8},
& & { 1, 5}, { 6,10}, { 2, 3}, { 8, 9},
& & { 1, 4}, { 7,10}, { 3, 5}, { 6, 8},
& & { 2, 4}, { 7, 9}, { 5, 6},
& & { 3, 4}, { 7, 8},
static const unsigned int network12[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 6, 7}, { 8, 9}, {10,11},
& & { 1, 3}, { 5, 7}, { 9,11}, { 0, 2}, { 4, 6}, { 8,10},
& & { 1, 2}, { 5, 6}, { 9,10}, { 0, 4}, { 7,11},
& & { 1, 5}, { 6,10}, { 3, 7}, { 4, 8},
& & { 5, 9}, { 2, 6}, { 0, 4}, { 7,11}, { 3, 8},
& & { 1, 5}, { 6,10}, { 2, 3}, { 8, 9},
& & { 1, 4}, { 7,10}, { 3, 5}, { 6, 8},
& & { 2, 4}, { 7, 9}, { 5, 6},
& & { 3, 4}, { 7, 8},
static const unsigned int network13[][2] = {
& & { 1, 7}, { 9,11}, { 3, 4}, { 5, 8}, { 0,12}, { 2, 6},
& & { 0, 1}, { 2, 3}, { 4, 6}, { 8,11}, { 7,12}, { 5, 9},
& & { 0, 2}, { 3, 7}, {10,11}, { 1, 4}, { 6,12},
& & { 7, 8}, {11,12}, { 4, 9}, { 6,10},
& & { 3, 4}, { 5, 6}, { 8, 9}, {10,11}, { 1, 7},
& & { 2, 6}, { 9,11}, { 1, 3}, { 4, 7}, { 8,10}, { 0, 5},
& & { 2, 5}, { 6, 8}, { 9,10},
& & { 1, 2}, { 3, 5}, { 7, 8}, { 4, 6},
& & { 2, 3}, { 4, 5}, { 6, 7}, { 8, 9},
& & { 3, 4}, { 5, 6},
static const unsigned int network14[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 6, 7}, { 8, 9}, {10,11}, {12,13},
& & { 0, 2}, { 4, 6}, { 8,10}, { 1, 3}, { 5, 7}, { 9,11},
& & { 0, 4}, { 8,12}, { 1, 5}, { 9,13}, { 2, 6}, { 3, 7},
& & { 0, 8}, { 1, 9}, { 2,10}, { 3,11}, { 4,12}, { 5,13},
& & { 5,10}, { 6, 9}, { 3,12}, { 7,11}, { 1, 2}, { 4, 8},
& & { 1, 4}, { 7,13}, { 2, 8}, { 5, 6}, { 9,10},
& & { 2, 4}, {11,13}, { 3, 8}, { 7,12},
& & { 6, 8}, {10,12}, { 3, 5}, { 7, 9},
& & { 3, 4}, { 5, 6}, { 7, 8}, { 9,10}, {11,12},
& & { 6, 7}, { 8, 9},
static const unsigned int network15[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 6, 7}, { 8, 9}, {10,11}, {12,13},
& & { 0, 2}, { 4, 6}, { 8,10}, {12,14}, { 1, 3}, { 5, 7}, { 9,11},
& & { 0, 4}, { 8,12}, { 1, 5}, { 9,13}, { 2, 6}, {10,14}, { 3, 7},
& & { 0, 8}, { 1, 9}, { 2,10}, { 3,11}, { 4,12}, { 5,13}, { 6,14},
& & { 5,10}, { 6, 9}, { 3,12}, {13,14}, { 7,11}, { 1, 2}, { 4, 8},
& & { 1, 4}, { 7,13}, { 2, 8}, {11,14}, { 5, 6}, { 9,10},
& & { 2, 4}, {11,13}, { 3, 8}, { 7,12},
& & { 6, 8}, {10,12}, { 3, 5}, { 7, 9},
& & { 3, 4}, { 5, 6}, { 7, 8}, { 9,10}, {11,12},
& & { 6, 7}, { 8, 9},
static const unsigned int network16[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 6, 7}, { 8, 9}, {10,11}, {12,13}, {14,15},
& & { 0, 2}, { 4, 6}, { 8,10}, {12,14}, { 1, 3}, { 5, 7}, { 9,11}, {13,15},
& & { 0, 4}, { 8,12}, { 1, 5}, { 9,13}, { 2, 6}, {10,14}, { 3, 7}, {11,15},
& & { 0, 8}, { 1, 9}, { 2,10}, { 3,11}, { 4,12}, { 5,13}, { 6,14}, { 7,15},
& & { 5,10}, { 6, 9}, { 3,12}, {13,14}, { 7,11}, { 1, 2}, { 4, 8},
& & { 1, 4}, { 7,13}, { 2, 8}, {11,14}, { 5, 6}, { 9,10},
& & { 2, 4}, {11,13}, { 3, 8}, { 7,12},
& & { 6, 8}, {10,12}, { 3, 5}, { 7, 9},
& & { 3, 4}, { 5, 6}, { 7, 8}, { 9,10}, {11,12},
& & { 6, 7}, { 8, 9},
static const unsigned int network17[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 6, 7}, { 8, 9}, {10,11}, {12,13}, {15,16},
& & { 0, 2}, { 1, 3}, { 4, 6}, { 5, 7}, { 8,10}, { 9,11}, {14,16},
& & { 1, 2}, { 5, 6}, { 0, 4}, { 3, 7}, { 9,10}, {14,15}, {13,16},
& & { 1, 5}, { 2, 6}, {12,15}, {11,16},
& & { 1, 4}, { 3, 6}, {12,14}, {13,15}, { 7,16},
& & { 2, 4}, { 3, 5}, {13,14}, {10,15},
& & { 3, 4}, { 8,13}, { 9,14}, {11,15},
& & { 8,12}, { 9,13}, {11,14}, { 6,15},
& & { 9,12}, {10,13}, { 5,14}, { 7,15},
& & {10,12}, {11,13}, { 0, 9}, { 7,14},
& & {11,12}, { 0, 8}, { 1,10}, { 4,13},
& & { 1, 9}, { 2,11}, { 3,12}, { 5,13},
& & { 1, 8}, { 3,11}, { 2, 9}, { 6,13},
& & { 2, 8}, { 3,10}, { 7,13}, { 6,11},
& & { 3, 9}, { 5,10}, { 7,12},
& & { 3, 8}, { 4, 9}, { 7,11},
& & { 4, 8}, { 5, 9}, { 7,10},
& & { 5, 8}, { 6, 9},
& & { 6, 8}, { 7, 9},
& & { 7, 8},
static const unsigned int network18[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 7, 8}, { 9,10}, {11,12}, {13,14}, {16,17},
& & { 0, 2}, { 1, 3}, { 6, 8}, { 9,11}, {10,12}, {15,17},
& & { 1, 2}, { 6, 7}, { 5, 8}, {10,11}, {15,16}, {14,17},
& & { 4, 7}, { 3, 8}, {13,16}, {12,17},
& & { 4, 6}, { 5, 7}, {13,15}, {14,16}, { 8,17},
& & { 5, 6}, { 2, 7}, {14,15}, {11,16},
& & { 0, 5}, { 1, 6}, { 3, 7}, { 9,14}, {10,15}, {12,16},
& & { 0, 4}, { 1, 5}, { 3, 6}, { 9,13}, {10,14}, {12,15}, { 7,16},
& & { 1, 4}, { 2, 5}, {10,13}, {11,14}, { 0, 9}, { 6,15}, { 8,16},
& & { 2, 4}, { 3, 5}, {11,13}, {12,14}, { 1,10}, { 7,15},
& & { 3, 4}, {12,13}, { 1, 9}, { 2,11}, { 5,14}, { 8,15},
& & { 3,12}, { 2, 9}, { 4,13}, { 7,14},
& & { 3,11}, { 5,13}, { 8,14},
& & { 3,10}, { 6,13},
& & { 3, 9}, { 7,13}, { 5,10}, { 6,11},
& & { 8,13}, { 4, 9}, { 7,12},
& & { 5, 9}, { 8,12}, { 7,11},
& & { 8,11}, { 6, 9}, { 7,10},
& & { 8,10}, { 7, 9},
& & { 8, 9},
static const unsigned int network19[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 7, 8}, { 9,10}, {12,13}, {14,15}, {17,18},
& & { 0, 2}, { 1, 3}, { 6, 8}, {11,13}, {16,18},
& & { 1, 2}, { 6, 7}, { 5, 8}, {11,12}, {10,13}, {16,17}, {15,18},
& & { 4, 7}, { 3, 8}, { 9,12}, {14,17}, {13,18},
& & { 4, 6}, { 5, 7}, { 9,11}, {10,12}, {14,16}, {15,17}, { 8,18},
& & { 5, 6}, { 2, 7}, {10,11}, {15,16}, { 9,14}, {12,17},
& & { 0, 5}, { 1, 6}, { 3, 7}, {10,15}, {11,16}, {13,17},
& & { 0, 4}, { 1, 5}, { 3, 6}, {10,14}, {12,16}, { 7,17},
& & { 1, 4}, { 2, 5}, {13,16}, {11,14}, {12,15}, { 0,10}, { 8,17},
& & { 2, 4}, { 3, 5}, {13,15}, {12,14}, { 0, 9}, { 1,11}, { 6,16},
& & { 3, 4}, {13,14}, { 1,10}, { 2,12}, { 5,15}, { 7,16},
& & { 1, 9}, { 3,13}, { 2,10}, { 4,14}, { 8,16}, { 7,15},
& & { 3,12}, { 2, 9}, { 5,14}, { 8,15},
& & { 3,11}, { 6,14},
& & { 3,10}, { 7,14}, { 6,11},
& & { 3, 9}, { 8,14}, { 5,10}, { 7,12},
& & { 4, 9}, { 8,13}, { 7,11},
& & { 5, 9}, { 8,12}, { 7,10},
& & { 8,11}, { 6, 9},
& & { 8,10}, { 7, 9},
& & { 8, 9},
static const unsigned int network20[][2] = {
& & { 0, 1}, { 3, 4}, { 5, 6}, { 8, 9}, {10,11}, {13,14}, {15,16}, {18,19},
& & { 2, 4}, { 7, 9}, {12,14}, {17,19},
& & { 2, 3}, { 1, 4}, { 7, 8}, { 6, 9}, {12,13}, {11,14}, {17,18}, {16,19},
& & { 0, 3}, { 5, 8}, { 4, 9}, {10,13}, {15,18}, {14,19},
& & { 0, 2}, { 1, 3}, { 5, 7}, { 6, 8}, {10,12}, {11,13}, {15,17}, {16,18}, { 9,19},
& & { 1, 2}, { 6, 7}, { 0, 5}, { 3, 8}, {11,12}, {16,17}, {10,15}, {13,18},
& & { 1, 6}, { 2, 7}, { 4, 8}, {11,16}, {12,17}, {14,18}, { 0,10},
& & { 1, 5}, { 3, 7}, {11,15}, {13,17}, { 8,18},
& & { 4, 7}, { 2, 5}, { 3, 6}, {14,17}, {12,15}, {13,16}, { 1,11}, { 9,18},
& & { 4, 6}, { 3, 5}, {14,16}, {13,15}, { 1,10}, { 2,12}, { 7,17},
& & { 4, 5}, {14,15}, { 3,13}, { 2,10}, { 6,16}, { 8,17},
& & { 4,14}, { 3,12}, { 5,15}, { 9,17}, { 8,16},
& & { 4,13}, { 3,11}, { 6,15}, { 9,16},
& & { 4,12}, { 3,10}, { 7,15},
& & { 4,11}, { 8,15}, { 7,12},
& & { 4,10}, { 9,15}, { 6,11}, { 8,13},
& & { 5,10}, { 9,14}, { 8,12},
& & { 6,10}, { 9,13}, { 8,11},
& & { 9,12}, { 7,10},
& & { 9,11}, { 8,10},
& & { 9,10},
static const unsigned int network21[][2] = {
& & { 0, 1}, { 3, 4}, { 5, 6}, { 8, 9}, {10,11}, {13,14}, {16,17}, {19,20},
& & { 2, 4}, { 7, 9}, {12,14}, {15,17}, {18,20},
& & { 2, 3}, { 1, 4}, { 7, 8}, { 6, 9}, {12,13}, {11,14}, {15,16}, {18,19}, {17,20},
& & { 0, 3}, { 5, 8}, { 4, 9}, {10,13}, {15,18}, {16,19}, {14,20},
& & { 0, 2}, { 1, 3}, { 5, 7}, { 6, 8}, {10,12}, {11,13}, {17,19}, {16,18}, { 9,20},
& & { 1, 2}, { 6, 7}, { 0, 5}, { 3, 8}, {11,12}, {17,18}, {10,16}, {13,19},
& & { 1, 6}, { 2, 7}, { 4, 8}, {10,15}, {11,17}, {12,18}, {14,19},
& & { 1, 5}, { 3, 7}, {11,16}, {13,18}, { 8,19},
& & { 4, 7}, { 2, 5}, { 3, 6}, {11,15}, {14,18}, {13,16}, { 9,19},
& & { 4, 6}, { 3, 5}, {12,15}, {14,17}, { 0,11}, { 7,18},
& & { 4, 5}, {14,16}, {13,15}, { 0,10}, { 1,12}, { 6,17}, { 8,18},
& & {14,15}, { 1,11}, { 2,13}, { 5,16}, { 9,18}, { 8,17},
& & { 1,10}, { 3,14}, { 4,15}, { 6,16}, { 9,17},
& & { 4,14}, { 3,13}, { 2,10}, { 7,16},
& & { 4,13}, { 3,11}, { 8,16},
& & { 4,12}, { 3,10}, { 9,16}, { 7,13}, { 8,14},
& & { 4,11}, { 6,12}, { 9,15}, { 8,13},
& & { 4,10}, { 5,11}, { 9,14},
& & { 5,10}, { 6,11}, { 9,13},
& & { 6,10}, { 8,11}, { 9,12},
& & { 7,10}, { 9,11},
& & { 8,10},
& & { 9,10},
static const unsigned int network22[][2] = {
& & { 0, 1}, { 3, 4}, { 6, 7}, { 9,10}, {11,12}, {14,15}, {17,18}, {20,21},
& & { 2, 4}, { 5, 7}, { 8,10}, {13,15}, {16,18}, {19,21},
& & { 2, 3}, { 1, 4}, { 5, 6}, { 8, 9}, { 7,10}, {13,14}, {12,15}, {16,17}, {19,20}, {18,21},
& & { 0, 3}, { 5, 8}, { 6, 9}, { 4,10}, {11,14}, {16,19}, {17,20}, {15,21},
& & { 0, 2}, { 1, 3}, { 7, 9}, { 6, 8}, {11,13}, {12,14}, {18,20}, {17,19}, {10,21},
& & { 1, 2}, { 7, 8}, { 0, 6}, { 3, 9}, {12,13}, {18,19}, {11,17}, {14,20},
& & { 0, 5}, { 1, 7}, { 2, 8}, { 4, 9}, {11,16}, {12,18}, {13,19}, {15,20},
& & { 1, 6}, { 3, 8}, {12,17}, {14,19}, { 0,11}, { 9,20},
& & { 1, 5}, { 4, 8}, { 3, 6}, {12,16}, {15,19}, {14,17}, {10,20},
& & { 2, 5}, { 4, 7}, {13,16}, {15,18}, { 1,12}, { 8,19},
& & { 4, 6}, { 3, 5}, {15,17}, {14,16}, { 1,11}, { 2,13}, { 7,18}, { 9,19},
& & { 4, 5}, {15,16}, { 3,14}, { 2,11}, { 6,17}, {10,19},
& & { 4,15}, { 3,13}, { 5,16}, { 7,17}, {10,18},
& & { 4,14}, { 3,12}, { 6,16}, { 9,17},
& & { 4,13}, { 3,11}, { 7,16}, {10,17},
& & { 4,12}, { 8,16}, { 7,13},
& & { 4,11}, { 9,16}, { 6,12}, { 8,14},
& & {10,16}, { 5,11}, { 7,12}, { 9,15},
& & { 6,11}, {10,15}, { 9,14},
& & { 7,11}, {10,14}, { 9,12},
& & { 8,11}, {10,13},
& & {10,12}, { 9,11},
& & {10,11},
static const unsigned int network23[][2] = {
& & { 0, 1}, { 3, 4}, { 6, 7}, { 9,10}, {12,13}, {15,16}, {18,19}, {21,22},
& & { 2, 4}, { 5, 7}, { 8,10}, {11,13}, {14,16}, {17,19}, {20,22},
& & { 2, 3}, { 1, 4}, { 5, 6}, { 8, 9}, { 7,10}, {11,12}, {14,15}, {13,16}, {17,18}, {20,21}, {19,22},
& & { 0, 3}, { 5, 8}, { 6, 9}, { 4,10}, {11,14}, {12,15}, {17,20}, {18,21}, {16,22},
& & { 0, 2}, { 1, 3}, { 7, 9}, { 6, 8}, {13,15}, {12,14}, {19,21}, {18,20}, {11,17}, {10,22},
& & { 1, 2}, { 7, 8}, { 0, 6}, { 3, 9}, {13,14}, {19,20}, {12,18}, {15,21},
& & { 0, 5}, { 1, 7}, { 2, 8}, { 4, 9}, {13,19}, {12,17}, {14,20}, {16,21},
& & { 1, 6}, { 3, 8}, {13,18}, {15,20}, { 0,12}, { 9,21},
& & { 1, 5}, { 4, 8}, { 3, 6}, {13,17}, {16,20}, {15,18}, { 0,11}, {10,21},
& & { 2, 5}, { 4, 7}, {14,17}, {16,19}, { 1,13}, { 8,20},
& & { 4, 6}, { 3, 5}, {16,18}, {15,17}, { 1,12}, { 2,14}, { 7,19}, { 9,20},
& & { 4, 5}, {16,17}, { 1,11}, { 3,15}, { 6,18}, {10,20},
& & { 4,16}, { 3,14}, { 2,11}, { 5,17}, { 7,18}, {10,19},
& & { 4,15}, { 3,12}, { 6,17}, { 9,18},
& & { 4,14}, { 3,11}, { 7,17}, {10,18},
& & { 4,13}, { 8,17},
& & { 4,12}, { 9,17}, { 7,13}, { 8,14},
& & { 4,11}, {10,17}, { 6,12}, { 9,15},
& & { 5,11}, { 7,12}, {10,16}, { 9,14},
& & { 6,11}, {10,15}, { 9,12},
& & { 7,11}, {10,14},
& & { 8,11}, {10,13},
& & {10,12}, { 9,11},
& & {10,11},
static const unsigned int network24[][2] = {
& & { 1, 2}, { 4, 5}, { 7, 8}, {10,11}, {13,14}, {16,17}, {19,20}, {22,23},
& & { 0, 2}, { 3, 5}, { 6, 8}, { 9,11}, {12,14}, {15,17}, {18,20}, {21,23},
& & { 0, 1}, { 3, 4}, { 2, 5}, { 6, 7}, { 9,10}, { 8,11}, {12,13}, {15,16}, {14,17}, {18,19}, {21,22}, {20,23},
& & { 0, 3}, { 1, 4}, { 6, 9}, { 7,10}, { 5,11}, {12,15}, {13,16}, {18,21}, {19,22}, {17,23},
& & { 2, 4}, { 1, 3}, { 8,10}, { 7, 9}, { 0, 6}, {14,16}, {13,15}, {20,22}, {19,21}, {12,18}, {11,23},
& & { 2, 3}, { 8, 9}, { 1, 7}, { 4,10}, {14,15}, {20,21}, {13,19}, {16,22}, { 0,12},
& & { 2, 8}, { 1, 6}, { 3, 9}, { 5,10}, {14,20}, {13,18}, {15,21}, {17,22},
& & { 2, 7}, { 4, 9}, {14,19}, {16,21}, { 1,13}, {10,22},
& & { 2, 6}, { 5, 9}, { 4, 7}, {14,18}, {17,21}, {16,19}, { 1,12}, {11,22},
& & { 3, 6}, { 5, 8}, {15,18}, {17,20}, { 2,14}, { 9,21},
& & { 5, 7}, { 4, 6}, {17,19}, {16,18}, { 2,13}, { 3,15}, { 8,20}, {10,21},
& & { 5, 6}, {17,18}, { 2,12}, { 4,16}, { 7,19}, {11,21},
& & { 5,17}, { 4,15}, { 3,12}, { 6,18}, { 8,19}, {11,20},
& & { 5,16}, { 4,13}, { 7,18}, {10,19},
& & { 5,15}, { 4,12}, { 8,18}, {11,19},
& & { 5,14}, { 9,18},
& & { 5,13}, {10,18}, { 8,14}, { 9,15},
& & { 5,12}, {11,18}, { 7,13}, {10,16},
& & { 6,12}, { 8,13}, {11,17}, {10,15},
& & { 7,12}, {11,16}, {10,13},
& & { 8,12}, {11,15},
& & { 9,12}, {11,14},
& & {11,13}, {10,12},
& & {11,12},
static const unsigned int network25[][2] = {
& & { 1, 2}, { 4, 5}, { 7, 8}, {10,11}, {13,14}, {16,17}, {19,20}, {21,22}, {23,24},
& & { 0, 2}, { 3, 5}, { 6, 8}, { 9,11}, {12,14}, {15,17}, {18,20}, {21,23}, {22,24},
& & { 0, 1}, { 3, 4}, { 2, 5}, { 6, 7}, { 9,10}, { 8,11}, {12,13}, {15,16}, {14,17}, {18,19}, {22,23}, {20,24},
& & { 0, 3}, { 1, 4}, { 6, 9}, { 7,10}, { 5,11}, {12,15}, {13,16}, {18,22}, {19,23}, {17,24},
& & { 2, 4}, { 1, 3}, { 8,10}, { 7, 9}, { 0, 6}, {14,16}, {13,15}, {18,21}, {20,23}, {11,24},
& & { 2, 3}, { 8, 9}, { 1, 7}, { 4,10}, {14,15}, {19,21}, {20,22}, {16,23},
& & { 2, 8}, { 1, 6}, { 3, 9}, { 5,10}, {20,21}, {12,19}, {15,22}, {17,23},
& & { 2, 7}, { 4, 9}, {12,18}, {13,20}, {14,21}, {16,22}, {10,23},
& & { 2, 6}, { 5, 9}, { 4, 7}, {14,20}, {13,18}, {17,22}, {11,23},
& & { 3, 6}, { 5, 8}, {14,19}, {16,20}, {17,21}, { 0,13}, { 9,22},
& & { 5, 7}, { 4, 6}, {14,18}, {15,19}, {17,20}, { 0,12}, { 8,21}, {10,22},
& & { 5, 6}, {15,18}, {17,19}, { 1,14}, { 7,20}, {11,22},
& & {16,18}, { 2,15}, { 1,12}, { 6,19}, { 8,20}, {11,21},
& & {17,18}, { 2,14}, { 3,16}, { 7,19}, {10,20},
& & { 2,13}, { 4,17}, { 5,18}, { 8,19}, {11,20},
& & { 2,12}, { 5,17}, { 4,16}, { 3,13}, { 9,19},
& & { 5,16}, { 3,12}, { 4,14}, {10,19},
& & { 5,15}, { 4,12}, {11,19}, { 9,16}, {10,17},
& & { 5,14}, { 8,15}, {11,18}, {10,16},
& & { 5,13}, { 7,14}, {11,17},
& & { 5,12}, { 6,13}, { 8,14}, {11,16},
& & { 6,12}, { 8,13}, {10,14}, {11,15},
& & { 7,12}, { 9,13}, {11,14},
& & { 8,12}, {11,13},
& & { 9,12},
& & {10,12},
& & {11,12},
static const unsigned int network26[][2] = {
& & { 1, 2}, { 4, 5}, { 7, 8}, { 9,10}, {11,12}, {14,15}, {17,18}, {20,21}, {22,23}, {24,25},
& & { 0, 2}, { 3, 5}, { 6, 8}, { 9,11}, {10,12}, {13,15}, {16,18}, {19,21}, {22,24}, {23,25},
& & { 0, 1}, { 3, 4}, { 2, 5}, { 6, 7}, {10,11}, { 8,12}, {13,14}, {16,17}, {15,18}, {19,20}, {23,24}, {21,25},
& & { 0, 3}, { 1, 4}, { 6,10}, { 7,11}, { 5,12}, {13,16}, {14,17}, {19,23}, {20,24}, {18,25},
& & { 2, 4}, { 1, 3}, { 6, 9}, { 8,11}, {15,17}, {14,16}, {19,22}, {21,24}, {12,25},
& & { 2, 3}, { 7, 9}, { 8,10}, { 4,11}, {15,16}, {20,22}, {21,23}, {17,24},
& & { 8, 9}, { 0, 7}, { 3,10}, { 5,11}, {21,22}, {13,20}, {16,23}, {18,24},
& & { 0, 6}, { 1, 8}, { 2, 9}, { 4,10}, {13,19}, {14,21}, {15,22}, {17,23}, {11,24},
& & { 2, 8}, { 1, 6}, { 5,10}, {15,21}, {14,19}, {18,23}, { 0,13}, {12,24},
& & { 2, 7}, { 4, 8}, { 5, 9}, {15,20}, {17,21}, {18,22}, { 1,14}, {10,23},
& & { 2, 6}, { 3, 7}, { 5, 8}, {15,19}, {16,20}, {18,21}, { 1,13}, { 9,22}, {12,23},
& & { 3, 6}, { 5, 7}, {16,19}, {18,20}, { 2,15}, { 8,21}, {10,22},
& & { 4, 6}, {17,19}, { 2,14}, { 3,16}, { 7,20}, {11,22},
& & { 5, 6}, {18,19}, { 2,13}, { 4,17}, { 8,20}, {12,22}, {11,21},
& & { 5,18}, { 4,16}, { 3,13}, { 6,19}, {10,20}, {12,21},
& & { 5,17}, { 4,14}, { 7,19}, {12,20},
& & { 5,16}, { 4,13}, { 8,19},
& & { 5,15}, { 9,19},
& & { 5,14}, {10,19}, { 8,15}, { 9,16},
& & { 5,13}, {11,19}, { 7,14}, {10,17},
& & {12,19}, { 6,13}, { 8,14}, {10,16}, {11,18},
& & { 7,13}, {12,18}, {11,16}, {10,14},
& & { 8,13}, {12,17}, {11,15},
& & {12,16}, { 9,13},
& & {10,13}, {12,15},
& & {11,13}, {12,14},
& & {12,13},
static const unsigned int network27[][2] = {
& & { 1, 2}, { 4, 5}, { 7, 8}, { 9,10}, {11,12}, {14,15}, {16,17}, {18,19}, {21,22}, {23,24}, {25,26},
& & { 0, 2}, { 3, 5}, { 6, 8}, { 9,11}, {10,12}, {13,15}, {16,18}, {17,19}, {20,22}, {23,25}, {24,26},
& & { 0, 1}, { 3, 4}, { 2, 5}, { 6, 7}, {10,11}, { 8,12}, {13,14}, {17,18}, {15,19}, {20,21}, {24,25}, {22,26},
& & { 0, 3}, { 1, 4}, { 6,10}, { 7,11}, { 5,12}, {13,17}, {14,18}, {20,24}, {21,25}, {19,26},
& & { 2, 4}, { 1, 3}, { 6, 9}, { 8,11}, {13,16}, {15,18}, {20,23}, {22,25}, {12,26},
& & { 2, 3}, { 7, 9}, { 8,10}, { 4,11}, {14,16}, {15,17}, {21,23}, {22,24}, {13,20}, {18,25},
& & { 8, 9}, { 0, 7}, { 3,10}, { 5,11}, {15,16}, {22,23}, {14,21}, {17,24}, {19,25},
& & { 0, 6}, { 1, 8}, { 2, 9}, { 4,10}, {15,22}, {14,20}, {16,23}, {19,24}, {11,25},
& & { 2, 8}, { 1, 6}, { 5,10}, {15,21}, {17,23}, { 0,14}, {12,25},
& & { 2, 7}, { 4, 8}, { 5, 9}, {15,20}, {18,23}, {17,21}, { 0,13}, {10,24},
& & { 2, 6}, { 3, 7}, { 5, 8}, {19,23}, {16,20}, {18,22}, { 1,15}, {12,24},
& & { 3, 6}, { 5, 7}, {17,20}, {19,22}, { 2,16}, { 1,13}, { 9,23},
& & { 4, 6}, {18,20}, {19,21}, { 2,15}, { 3,17}, { 8,22}, {10,23},
& & { 5, 6}, {19,20}, { 2,14}, { 4,18}, { 7,21}, {11,23},
& & { 2,13}, { 5,19}, { 4,17}, { 3,14}, { 6,20}, { 8,21}, {12,23}, {11,22},
& & { 5,18}, { 3,13}, { 4,15}, { 7,20}, {10,21}, {12,22},
& & { 5,17}, { 4,13}, { 8,20}, {12,21},
& & { 5,16}, { 9,20},
& & { 5,15}, {10,20}, { 9,16},
& & { 5,14}, {11,20}, { 8,15}, {10,17},
& & { 5,13}, {12,20}, { 7,14}, {10,16}, {11,18},
& & { 6,13}, { 8,14}, {12,19}, {11,16},
& & { 7,13}, {12,18}, {10,14}, {11,15},
& & { 8,13}, {12,17},
& & {12,16}, { 9,13},
& & {10,13}, {12,15},
& & {11,13}, {12,14},
& & {12,13},
static const unsigned int network28[][2] = {
& & { 1, 2}, { 3, 4}, { 5, 6}, { 8, 9}, {10,11}, {12,13}, {15,16}, {17,18}, {19,20}, {22,23}, {24,25}, {26,27},
& & { 0, 2}, { 3, 5}, { 4, 6}, { 7, 9}, {10,12}, {11,13}, {14,16}, {17,19}, {18,20}, {21,23}, {24,26}, {25,27},
& & { 0, 1}, { 4, 5}, { 2, 6}, { 7, 8}, {11,12}, { 9,13}, {14,15}, {18,19}, {16,20}, {21,22}, {25,26}, {23,27},
& & { 0, 4}, { 1, 5}, { 7,11}, { 8,12}, { 6,13}, {14,18}, {15,19}, {21,25}, {22,26}, {20,27},
& & { 0, 3}, { 2, 5}, { 7,10}, { 9,12}, {14,17}, {16,19}, {21,24}, {23,26}, {13,27},
& & { 1, 3}, { 2, 4}, { 8,10}, { 9,11}, { 0, 7}, { 5,12}, {15,17}, {16,18}, {22,24}, {23,25}, {14,21}, {19,26},
& & { 2, 3}, { 9,10}, { 1, 8}, { 4,11}, { 6,12}, {16,17}, {23,24}, {15,22}, {18,25}, {20,26}, { 0,14},
& & { 2, 9}, { 1, 7}, { 3,10}, { 6,11}, {16,23}, {15,21}, {17,24}, {20,25}, {12,26},
& & { 2, 8}, { 4,10}, {16,22}, {18,24}, { 1,15}, {11,25}, {13,26},
& & { 2, 7}, { 5,10}, { 4, 8}, {16,21}, {19,24}, {18,22}, { 1,14}, {13,25},
& & { 6,10}, { 3, 7}, { 5, 9}, {20,24}, {17,21}, {19,23}, { 2,16},
& & { 4, 7}, { 6, 9}, {18,21}, {20,23}, { 2,15}, { 3,17}, {10,24},
& & { 5, 7}, { 6, 8}, {19,21}, {20,22}, { 2,14}, { 4,18}, { 9,23}, {11,24},
& & { 6, 7}, {20,21}, { 4,17}, { 5,19}, { 3,14}, { 8,22}, {12,24},
& & { 6,20}, { 5,17}, { 4,15}, { 7,21}, { 9,22}, {13,24}, {12,23},
& & { 6,19}, { 4,14}, { 5,16}, { 8,21}, {11,22}, {13,23},
& & { 6,18}, { 5,14}, { 9,21}, {13,22},
& & { 6,17}, {10,21},
& & { 6,16}, {11,21}, {10,17},
& & { 6,15}, {12,21}, { 9,16}, {11,18},
& & { 6,14}, {13,21}, { 8,15}, {11,17}, {12,19},
& & { 7,14}, { 9,15}, {13,20}, {12,17},
& & { 8,14}, {13,19}, {11,15}, {12,16},
& & { 9,14}, {13,18},
& & {13,17}, {10,14},
& & {11,14}, {13,16},
& & {12,14}, {13,15},
& & {13,14},
static const unsigned int network29[][2] = {
& & { 1, 2}, { 3, 4}, { 5, 6}, { 8, 9}, {10,11}, {12,13}, {15,16}, {17,18}, {19,20}, {21,22}, {23,24}, {25,26}, {27,28},
& & { 0, 2}, { 3, 5}, { 4, 6}, { 7, 9}, {10,12}, {11,13}, {14,16}, {17,19}, {18,20}, {21,23}, {22,24}, {25,27}, {26,28},
& & { 0, 1}, { 4, 5}, { 2, 6}, { 7, 8}, {11,12}, { 9,13}, {14,15}, {18,19}, {16,20}, {22,23}, {26,27}, {21,25}, {24,28},
& & { 0, 4}, { 1, 5}, { 7,11}, { 8,12}, { 6,13}, {14,18}, {15,19}, {22,26}, {23,27}, {20,28},
& & { 0, 3}, { 2, 5}, { 7,10}, { 9,12}, {14,17}, {16,19}, {22,25}, {24,27}, {13,28},
& & { 1, 3}, { 2, 4}, { 8,10}, { 9,11}, { 0, 7}, { 5,12}, {15,17}, {16,18}, {23,25}, {24,26}, {14,22}, {19,27},
& & { 2, 3}, { 9,10}, { 1, 8}, { 4,11}, { 6,12}, {16,17}, {24,25}, {14,21}, {15,23}, {18,26}, {20,27},
& & { 2, 9}, { 1, 7}, { 3,10}, { 6,11}, {16,24}, {15,21}, {17,25}, {20,26}, {12,27},
& & { 2, 8}, { 4,10}, {16,23}, {18,25}, { 0,15}, {11,26}, {13,27},
& & { 2, 7}, { 5,10}, { 4, 8}, {16,22}, {19,25}, { 0,14}, {13,26},
& & { 6,10}, { 3, 7}, { 5, 9}, {16,21}, {20,25}, {18,22}, {19,23},
& & { 4, 7}, { 6, 9}, {17,21}, {20,24}, { 1,16}, {10,25},
& & { 5, 7}, { 6, 8}, {18,21}, {20,23}, { 2,17}, { 1,14}, { 9,24}, {11,25},
& & { 6, 7}, {19,21}, {20,22}, { 2,16}, { 3,18}, { 8,23}, {12,25},
& & {20,21}, { 2,15}, { 4,19}, { 7,22}, { 9,23}, {13,25}, {12,24},
& & { 2,14}, { 4,18}, { 5,20}, { 6,21}, { 8,22}, {11,23}, {13,24},
& & { 6,20}, { 5,18}, { 3,14}, { 4,15}, { 9,22}, {13,23},
& & { 6,19}, { 4,14}, { 5,16}, {10,22},
& & { 6,18}, { 5,14}, {11,22},
& & { 6,17}, {12,22}, {10,18}, {11,19},
& & { 6,16}, {13,22}, { 9,17}, {11,18}, {12,20},
& & { 6,15}, { 8,16}, {13,21}, {12,18},
& & { 6,14}, { 7,15}, { 9,16}, {13,20},
& & { 7,14}, { 9,15}, {13,19}, {12,16},
& & { 8,14}, {13,18}, {11,15},
& & { 9,14}, {13,17},
& & {10,14}, {13,16},
& & {11,14}, {13,15},
& & {12,14},
& & {13,14},
static const unsigned int network30[][2] = {
& & { 1, 2}, { 3, 4}, { 5, 6}, { 7, 8}, { 9,10}, {11,12}, {13,14}, {16,17}, {18,19}, {20,21}, {22,23}, {24,25}, {26,27}, {28,29},
& & { 0, 2}, { 3, 5}, { 4, 6}, { 7, 9}, { 8,10}, {11,13}, {12,14}, {15,17}, {18,20}, {19,21}, {22,24}, {23,25}, {26,28}, {27,29},
& & { 0, 1}, { 4, 5}, { 2, 6}, { 8, 9}, {12,13}, { 7,11}, {10,14}, {15,16}, {19,20}, {17,21}, {23,24}, {27,28}, {22,26}, {25,29},
& & { 0, 4}, { 1, 5}, { 8,12}, { 9,13}, { 6,14}, {15,19}, {16,20}, {23,27}, {24,28}, {21,29},
& & { 0, 3}, { 2, 5}, { 8,11}, {10,13}, {15,18}, {17,20}, {23,26}, {25,28}, {14,29},
& & { 1, 3}, { 2, 4}, { 9,11}, {10,12}, { 0, 8}, { 5,13}, {16,18}, {17,19}, {24,26}, {25,27}, {15,23}, {20,28},
& & { 2, 3}, {10,11}, { 0, 7}, { 1, 9}, { 4,12}, { 6,13}, {17,18}, {25,26}, {15,22}, {16,24}, {19,27}, {21,28},
& & { 2,10}, { 1, 7}, { 3,11}, { 6,12}, {17,25}, {16,22}, {18,26}, {21,27}, { 0,15}, {13,28},
& & { 2, 9}, { 4,11}, {17,24}, {19,26}, { 1,16}, {12,27}, {14,28},
& & { 2, 8}, { 5,11}, {17,23}, {20,26}, { 1,15}, {14,27},
& & { 2, 7}, { 6,11}, { 4, 8}, { 5, 9}, {17,22}, {21,26}, {19,23}, {20,24},
& & { 3, 7}, { 6,10}, {18,22}, {21,25}, { 2,17}, {11,26},
& & { 4, 7}, { 6, 9}, {19,22}, {21,24}, { 2,16}, { 3,18}, {10,25}, {12,26},
& & { 5, 7}, { 6, 8}, {20,22}, {21,23}, { 2,15}, { 4,19}, { 9,24}, {13,26},
& & { 6, 7}, {21,22}, { 4,18}, { 5,20}, { 3,15}, { 8,23}, {10,24}, {14,26},
& & { 6,21}, { 5,18}, { 4,16}, { 7,22}, {10,23}, {13,24}, {14,25},
& & { 6,20}, { 4,15}, { 5,17}, { 8,22}, {12,23}, {14,24},
& & { 6,19}, { 5,15}, { 9,22}, {14,23},
& & { 6,18}, {10,22},
& & { 6,17}, {11,22}, {10,18},
& & { 6,16}, {12,22}, { 9,17}, {11,19},
& & { 6,15}, {13,22}, { 8,16}, {10,17}, {12,20},
& & {14,22}, { 7,15}, {10,16}, {12,19}, {13,21},
& & { 8,15}, {14,21}, {13,19}, {12,16},
& & { 9,15}, {14,20}, {13,17},
& & {10,15}, {14,19},
& & {11,15}, {14,18},
& & {12,15}, {14,17},
& & {13,15}, {14,16},
& & {14,15},
static const unsigned int network31[][2] = {
& & { 1, 2}, { 3, 4}, { 5, 6}, { 7, 8}, { 9,10}, {11,12}, {13,14}, {15,16}, {17,18}, {19,20}, {21,22}, {23,24}, {25,26}, {27,28}, {29,30},
& & { 0, 2}, { 3, 5}, { 4, 6}, { 7, 9}, { 8,10}, {11,13}, {12,14}, {15,17}, {16,18}, {19,21}, {20,22}, {23,25}, {24,26}, {27,29}, {28,30},
& & { 0, 1}, { 4, 5}, { 2, 6}, { 8, 9}, {12,13}, { 7,11}, {10,14}, {16,17}, {20,21}, {15,19}, {18,22}, {24,25}, {28,29}, {23,27}, {26,30},
& & { 0, 4}, { 1, 5}, { 8,12}, { 9,13}, { 6,14}, {16,20}, {17,21}, {24,28}, {25,29}, {15,23}, {22,30},
& & { 0, 3}, { 2, 5}, { 8,11}, {10,13}, {16,19}, {18,21}, {24,27}, {26,29}, {14,30},
& & { 1, 3}, { 2, 4}, { 9,11}, {10,12}, { 0, 8}, { 5,13}, {17,19}, {18,20}, {25,27}, {26,28}, {16,24}, {21,29},
& & { 2, 3}, {10,11}, { 0, 7}, { 1, 9}, { 4,12}, { 6,13}, {18,19}, {26,27}, {16,23}, {17,25}, {20,28}, {22,29},
& & { 2,10}, { 1, 7}, { 3,11}, { 6,12}, {18,26}, {17,23}, {19,27}, {22,28}, { 0,16}, {13,29},
& & { 2, 9}, { 4,11}, {18,25}, {20,27}, { 0,15}, { 1,17}, {12,28}, {14,29},
& & { 2, 8}, { 5,11}, {18,24}, {21,27}, { 1,15}, {14,28},
& & { 2, 7}, { 6,11}, { 4, 8}, { 5, 9}, {18,23}, {22,27}, {20,24}, {21,25},
& & { 3, 7}, { 6,10}, {19,23}, {22,26}, { 2,18}, {11,27},
& & { 4, 7}, { 6, 9}, {20,23}, {22,25}, { 2,17}, { 3,19}, {10,26}, {12,27},
& & { 5, 7}, { 6, 8}, {21,23}, {22,24}, { 2,16}, { 4,20}, { 9,25}, {13,27},
& & { 6, 7}, {22,23}, { 2,15}, { 4,19}, { 5,21}, { 8,24}, {10,25}, {14,27},
& & { 6,22}, { 5,19}, { 3,15}, { 4,16}, { 7,23}, {10,24}, {13,25}, {14,26},
& & { 6,21}, { 4,15}, { 5,17}, { 8,23}, {12,24}, {14,25},
& & { 6,20}, { 5,15}, { 9,23}, {14,24},
& & { 6,19}, {10,23},
& & { 6,18}, {11,23},
& & { 6,17}, {12,23}, {10,18}, {11,19},
& & { 6,16}, {13,23}, { 9,17}, {12,20},
& & { 6,15}, {14,23}, { 8,16}, {10,17}, {12,19}, {13,21},
& & { 7,15}, {10,16}, {14,22}, {13,19},
& & { 8,15}, {14,21}, {12,16}, {13,17},
& & { 9,15}, {14,20},
& & {10,15}, {14,19},
& & {11,15}, {14,18},
& & {12,15}, {14,17},
& & {13,15}, {14,16},
& & {14,15},
static const unsigned int network32[][2] = {
& & { 0, 1}, { 2, 3}, { 4, 5}, { 6, 7}, { 8, 9}, {10,11}, {12,13}, {14,15}, {16,17}, {18,19}, {20,21}, {22,23}, {24,25}, {26,27}, {28,29}, {30,31},
& & { 0, 2}, { 1, 3}, { 4, 6}, { 5, 7}, { 8,10}, { 9,11}, {12,14}, {13,15}, {16,18}, {17,19}, {20,22}, {21,23}, {24,26}, {25,27}, {28,30}, {29,31},
& & { 1, 2}, { 5, 6}, { 0, 4}, { 3, 7}, { 9,10}, {13,14}, { 8,12}, {11,15}, {17,18}, {21,22}, {16,20}, {19,23}, {25,26}, {29,30}, {24,28}, {27,31},
& & { 1, 5}, { 2, 6}, { 9,13}, {10,14}, { 0, 8}, { 7,15}, {17,21}, {18,22}, {25,29}, {26,30}, {16,24}, {23,31},
& & { 1, 4}, { 3, 6}, { 9,12}, {11,14}, {17,20}, {19,22}, {25,28}, {27,30}, { 0,16}, {15,31},
& & { 2, 4}, { 3, 5}, {10,12}, {11,13}, { 1, 9}, { 6,14}, {18,20}, {19,21}, {26,28}, {27,29}, {17,25}, {22,30},
& & { 3, 4}, {11,12}, { 1, 8}, { 2,10}, { 5,13}, { 7,14}, {19,20}, {27,28}, {17,24}, {18,26}, {21,29}, {23,30},
& & { 3,11}, { 2, 8}, { 4,12}, { 7,13}, {19,27}, {18,24}, {20,28}, {23,29}, { 1,17}, {14,30},
& & { 3,10}, { 5,12}, {19,26}, {21,28}, { 1,16}, { 2,18}, {13,29}, {15,30},
& & { 3, 9}, { 6,12}, {19,25}, {22,28}, { 2,16}, {15,29},
& & { 3, 8}, { 7,12}, { 5, 9}, { 6,10}, {19,24}, {23,28}, {21,25}, {22,26},
& & { 4, 8}, { 7,11}, {20,24}, {23,27}, { 3,19}, {12,28},
& & { 5, 8}, { 7,10}, {21,24}, {23,26}, { 3,18}, { 4,20}, {11,27}, {13,28},
& & { 6, 8}, { 7, 9}, {22,24}, {23,25}, { 3,17}, { 5,21}, {10,26}, {14,28},
& & { 7, 8}, {23,24}, { 3,16}, { 5,20}, { 6,22}, { 9,25}, {11,26}, {15,28},
& & { 7,23}, { 6,20}, { 4,16}, { 5,17}, { 8,24}, {11,25}, {14,26}, {15,27},
& & { 7,22}, { 5,16}, { 6,18}, { 9,24}, {13,25}, {15,26},
& & { 7,21}, { 6,16}, {10,24}, {15,25},
& & { 7,20}, {11,24},
& & { 7,19}, {12,24},
& & { 7,18}, {13,24}, {11,19}, {12,20},
& & { 7,17}, {14,24}, {10,18}, {13,21},
& & { 7,16}, {15,24}, { 9,17}, {11,18}, {13,20}, {14,22},
& & { 8,16}, {11,17}, {15,23}, {14,20},
& & { 9,16}, {15,22}, {13,17}, {14,18},
& & {10,16}, {15,21},
& & {11,16}, {15,20},
& & {12,16}, {15,19},
& & {13,16}, {15,18},
& & {14,16}, {15,17},
& & {15,16},
typedef struct {
& & const unsigned int comparators;
& & const unsigned int (*pNetwork)[2];
} Network;
#define elemof(ary) (sizeof(ary)/sizeof(ary[0]))
#define NETWORK(n) {elemof(network##n), network##n}
static const Network networks[] = {
& & {0, NULL},
& & {0, NULL},
& & NETWORK(02),
& & NETWORK(03),
& & NETWORK(04),
& & NETWORK(05),
& & NETWORK(06),
& & NETWORK(07),
& & NETWORK(08),
& & NETWORK(09),
& & NETWORK(10),
& & NETWORK(11),
& & NETWORK(12),
& & NETWORK(13),
& & NETWORK(14),
& & NETWORK(15),
& & NETWORK(16),
& & NETWORK(17),
& & NETWORK(18),
& & NETWORK(19),
& & NETWORK(20),
& & NETWORK(21),
& & NETWORK(22),
& & NETWORK(23),
& & NETWORK(24),
& & NETWORK(25),
& & NETWORK(26),
& & NETWORK(27),
& & NETWORK(28),
& & NETWORK(29),
& & NETWORK(30),
& & NETWORK(31),
& & NETWORK(32),
#undef NETWORK
static const size_t cutoff = elemof(networks);
template&typename Elem&
inline void networkSort(Elem *p, size_t n) {
& & const unsigned int (* pNetwork)[2], (* pEnd)[2];
& & Elem *p0, *p1;
& & assert(n & elemof(networks));
& & pNetwork = networks[n].pNetwork;
& & pEnd = pNetwork + networks[n].comparators;
& & for(; pNetwork & pEnd; pNetwork++) {
& & & & p0 = p + (*pNetwork)[0];
& & & & p1 = p + (*pNetwork)[1];
& & & & if(*p1 & *p0) swap(p0, p1);
& & }
January 18th, 2011 | 荒唐 |
Categories: ,
| Comments: Comments Off on Sorting network
Fri Jan 26th 4:46:40 UTC 2018