国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Polya問(wèn)題

2019-11-09 20:25:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Polya問(wèn)題

給定紅色和藍(lán)色給八個(gè)棋子涂色,求所有的涂色方案,其中某種方案可以通過(guò)旋轉(zhuǎn)到另一種,則這兩種方案視作一種。

研一組合數(shù)學(xué)講的波利亞定義,旋轉(zhuǎn)輪換的內(nèi)容。

如果用代碼解決,可以將八個(gè)棋子視作二進(jìn)制的8位。那么如果不考慮條件所說(shuō)的旋轉(zhuǎn)算一做,那理論上有255種不同的方案。

同樣是篩選法的思想,假設(shè)現(xiàn)在一共255種方案,那么遍歷這些方案,對(duì)某種方案循環(huán)左移8次(8次后肯定會(huì)回到相同的位置),循環(huán)左移得到的數(shù)字,我們只保留最小的那個(gè)數(shù),作為這個(gè)類別的代表,其他的篩選掉。

代碼

int RotateLeft(int x, int N){ int high =( x >> (N-1));// 取出最高位 x = ((1 << (N-1)) - 1)&x; x = x << 1; x |= high; return x;}int Polya(int N){ int m = 1 << N; vector<int>p(m, 1);//還未開(kāi)始篩選 for (int i = 0; i < m; ++i) { if (1 == p[i])//還未開(kāi)始篩選 { int k1 = i; for (int j = 0; j < N; ++j) { int k2 = RotateLeft(k1, N);//循環(huán)左移一次 if (k2 == i) { break;//完成一輪 } if (k2 > i) { p[k2] = 0;//視作無(wú)效 } else//k2<i { p[i] = 0; break; } k1 = k2; } } } return count(p.begin(), p.end(), 1);}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 无棣县| 樟树市| 苏州市| 巴南区| 汉中市| 桐柏县| 济南市| 枣强县| 巢湖市| 西乡县| 雷州市| 登封市| 塔河县| 湖州市| 漳州市| 陵川县| 崇左市| 奈曼旗| 石渠县| 巍山| 株洲市| 平陆县| 崇阳县| 玉树县| 扎兰屯市| 邵武市| 汝阳县| 桐乡市| 泰和县| 宜丰县| 客服| 龙井市| 潞西市| 全州县| 资中县| 久治县| 西宁市| 平利县| 澄江县| 车致| 虎林市|