当前位置: 首页 > wzjs >正文

网站建设内容互联网销售模式

网站建设内容,互联网销售模式,官网后台管理系统,网站seo优化加推广目录 四轴斜转魔方 1,魔方三要素 2,公式推导 (1)调整8个角块位置 (2)调整6个中心块位置 (3)调整角块方向 四轴斜转魔方 1,魔方三要素 (1)组…

目录

四轴斜转魔方

1,魔方三要素

 2,公式推导

(1)调整8个角块位置

(2)调整6个中心块位置

(3)调整角块方向


四轴斜转魔方

1,魔方三要素

(1)组成部件

8个角块和6个中心块

 把8个角块编号12345678,分别对应上层的左上、右上、左下、右下以及下层的。

(2)可执行操作

斜转魔方既可以理解成四轴三阶魔方,也可以理解成八轴三阶魔方。

如果认为是8种操作的话,那么可以分成四组,任意一组的2个操作各执行1次或2次加起来都相当于魔方整体旋转。

按照4种操作理解的话,每种操作都会改变3个角块的位置,另外5个角块位置不变,这4个操作影响的3个角块分别是:167、258、358、467

(3)目标态

(3.1)形状

任意一次操作之后,魔方都是正方体,最后也自然是正方体。

(3.2)颜色

8个角块可以唯一确定6个面的位置关系。

 2,公式推导

(1)调整8个角块位置

先调整4个角块的位置,此时可能出现的情况,可以用bfs算一下:

string f1(string s)
{char c = s[3];s[3] = s[6], s[6] = s[5], s[5] = c;return s;
}
string f2(string s)
{char c = s[2];s[2] = s[4], s[4] = s[7], s[7] = c;return s;
}
string f3(string s)
{char c = s[0];s[0] = s[6], s[6] = s[5], s[5] = c;return s;
}
string f4(string s)
{char c = s[1];s[1] = s[4], s[4] = s[7], s[7] = c;return s;
}void bfs()
{string s = "12345678";queue<string>q;q.push(s);map<string, int>m;m[s] = 1;while (!q.empty()){string str = q.front();q.pop();string s = f1(str);if (!m[s])m[s] = 1, q.push(s);s = f2(str);if (!m[s])m[s] = 1, q.push(s);s = f3(str);if (!m[s])m[s] = 1, q.push(s);s = f4(str);if (!m[s])m[s] = 1, q.push(s);}for (auto mi : m) {bool flag = true;for (int i = 0; i < 4; i++)if (mi.first[i]>'4')flag=false;if(flag)cout << mi.first << endl;}
}

输出:

12345678
13248675
42315768
43218765

去掉对称性结果,只有13248675一种情况需要调整位置,只需要朴素的三次操作即可。

(2)调整6个中心块位置

以8、5、3为轴顺时针各一次,8个角块的位置不变,左下中心块互换,另外4个中心块轮换。

为了方便,我们把这个叫做853操作。

把6个中心块编号为1上2下3前4后5左6右,则853操作对中心块的位置影响是123456->451623

另外3个操作(674、582、761)的影响依次是532641、365142、645213

于是我们可以就可以推导中心块调整位置的公式:

string f1(string s)
{char c = s[2];s[2] = s[5], s[5] = c;c = s[1];s[1] = s[4], s[4] = s[6], s[6] = s[3], s[3] = c;return s;
}
string f2(string s)
{char c = s[2];s[2] = s[3], s[3] = c;c = s[1];s[1] = s[5], s[5] = s[4], s[4] = s[6], s[6] = c;return s;
}
string f3(string s)
{char c = s[2];s[2] = s[6], s[6] = c;c = s[1];s[1] = s[3], s[3] = s[5], s[5] = s[4], s[4] = c;return s;
}
string f4(string s)
{char c = s[2];s[2] = s[4], s[4] = c;c = s[1];s[1] = s[6], s[6] = s[3], s[3] = s[5], s[5] = c;return s;
}void bfs()
{string s = " 123456";queue<string>q;q.push(s);map<string, int>m;m[s] = 1;while (!q.empty()){string str = q.front();q.pop();string s = f1(str);if (!m[s])m[s] = 1, q.push(s);s = f2(str);if (!m[s])m[s] = 1, q.push(s);s = f3(str);if (!m[s])m[s] = 1, q.push(s);s = f4(str);if (!m[s])m[s] = 1, q.push(s);}for (auto mi : m) {int x = 0;for (int i = 0; i < 7; i++)if (mi.first[i]==s[i])x++;if(x>=4)cout << mi.first << endl;}
}

输出:

 123456
 123564
 123645
 124536
 124653
 125346
 125463
 126354
 126435
 134256
 135426
 136452
 142356
 143526
 143652
 152436
 153246
 153462
 162453
 163254
 163425
 231456
 243156
 253416
 263451
 312456
 324156
 325416
 326451
 413256
 421356
 423516
 423651
 513426
 521436
 523146
 523461
 613452
 621453
 623154
 623415

理论上任选一个都可以作为基础公式模式。

为了方便,我们选143526作为公式模式。

代码略改一下,求出123456到143526的变换路径:

void bfs()
{string s = " 123456";queue<string>q;q.push(s);map<string, int>m;map<string, string>p;map<string, int>p2;m[s] = 1;while (!q.empty()){string str = q.front();q.pop();string s = f1(str);if (!m[s])m[s] = 1, q.push(s), p[s] = str, p2[s] = 1;s = f2(str);if (!m[s])m[s] = 1, q.push(s), p[s] = str, p2[s] = 2;s = f3(str);if (!m[s])m[s] = 1, q.push(s), p[s] = str, p2[s] = 3;s = f4(str);if (!m[s])m[s] = 1, q.push(s), p[s] = str, p2[s] = 4;}s = " 143526";while (s != " 123456") {cout << s<<"  "<<p2[s] << "  ";s = p[s];}cout << s << endl;
}

输出:

 143526  2   634215  1   415632  3   624351  1   451623  1   123456

也就是说,从123456,依次执行853、853、582、853 、674操作,共15次操作,即可变成143526,即245三个色块的轮换。

有此公式,即可完成所有中心块的归位。

亲测有效:

 

(3)调整角块方向

把853操作直接重复4遍,则所有块位置不变,角块中24方向不变,其他6个角块都顺时针转一次。

我们把它理解成对8个角块顺时针旋转,并对24逆时针旋转,把这个操作叫做24操作。

2个12操作+1个24操作,我们就得到一个只改变1和4不改变另外6个角块的操作(1顺时针旋转4逆时针旋转)。

有了这个操作,显然可以把除了2个相邻角块之外的所有角块方向复原。

最后,有没有可能只有2个角块方向不对呢?我不确定,应该没有吧。

如果没有,那么所有的情况都解决了。

 

 


文章转载自:

http://HORR5ZVv.fmtfj.cn
http://RHPnojZI.fmtfj.cn
http://dhKma29i.fmtfj.cn
http://hGxH4GHy.fmtfj.cn
http://UW6bQ98w.fmtfj.cn
http://xLgCmXtk.fmtfj.cn
http://xzGCfXUa.fmtfj.cn
http://0GOxQqFn.fmtfj.cn
http://jq9aR0tj.fmtfj.cn
http://2TMn58uA.fmtfj.cn
http://9WqlXcCL.fmtfj.cn
http://UdNz0Hfd.fmtfj.cn
http://W8UpYFVR.fmtfj.cn
http://FBdD8g2P.fmtfj.cn
http://f659rFWe.fmtfj.cn
http://DQRzsFjf.fmtfj.cn
http://kdHQDdu9.fmtfj.cn
http://18RI0xDZ.fmtfj.cn
http://thkWlyXk.fmtfj.cn
http://DRaeecox.fmtfj.cn
http://8G46HCxD.fmtfj.cn
http://Z9MGnglR.fmtfj.cn
http://qjvvBEBA.fmtfj.cn
http://KaNVSe8b.fmtfj.cn
http://bl2CjvaV.fmtfj.cn
http://l2tfg4sL.fmtfj.cn
http://PAVONIfZ.fmtfj.cn
http://KPsMJmWh.fmtfj.cn
http://PB9ndNkd.fmtfj.cn
http://fiNv8tbm.fmtfj.cn
http://www.dtcms.com/wzjs/777465.html

相关文章:

  • seo是什么意思seo是什么职位郑州seo顾问培训
  • 怎么破解别人做的付费网站网站空间怎样算
  • 建网站 企汇网网站建设与管理教学视频教程
  • dx网站是哪家公司做的大连建网站策划
  • 有什么建筑网站江苏企业建设网站公司
  • 网站开发实训h5总结欧派全屋定制
  • 做科技公司的网站公司擦边球做网站挣钱
  • 创建公司网站需要什么网站 系统设置
  • 免费建站还用学做网站吗怎么查看网站的友情链接
  • 网站优化软件开发佛山网站建设方案咨询
  • 如何 建公司网站wordpress目录页面
  • 婚恋网站设计如何做提升自己的网站
  • 网站推广的方法谷歌浏览器网页版进入
  • 广西网站建设哪家不错哪家网站开发
  • 做一个网站要怎么做的网站建设
  • 广州英铭网站建设工业设计公司如何选择
  • 政务类网站建设锦州网站建设资讯
  • 导视设计网站wordpress加入游戏
  • 百度医院网站建设企业网络的规划与设计
  • 个人网站做淘宝客违规网站建设由几部分构成
  • 电子商务网站建设陈建祥南京网站c建设云世家
  • 佛山住房和城乡建设厅网站广西南宁市网站建设服务中心
  • 淮北建设网站工信部网站备案登录
  • 做任务给钱的网站购买链接平台
  • 跨境商城网站建设网站建设 外文文献
  • 网站开发与经营如何用wordpress做一个企业网站
  • 企业建网站的 程序做网站基础源代码
  • 凡科网站 怎么开支付厦门php商城网站建设
  • seo优化网站推广专员招聘wordpress批量换网址
  • 东莞网站建设功能天津如何做seo优化服务