.

1

/

2

魔方打乱程序思路

2010

之前在网上下载了一个魔方打乱程序手机版

(

WM

平台)

程序中的打乱可以说是糟透

了,

RLR

’这样的出现很多,但最让人郁闷的不是

RLR

,而是居然还让我见到了

DD

’这

样的公式,

真是有够开玩笑的,

所以想到了写这篇文章,

我不是专业的程序员,也就不写什

么例程之类的了,只写写我想到的方法。

首先我把魔方打乱公式中的转动方法分为

18

种,按照

U

U2

U

D

D2

D

F

F2

F

B

B2

B

R

R2

R

L

L2

L

’这样的顺序来把这

18

个转动方式编号为

1-18

(顺序一写要是正对的两个面是连在一起的)

,再准备三个整数变量

I1

I2

I3

然后在出打乱公式第一步的时候生成一个

1

18

之间的随机数并把这个随机数保存到

I2

中。

接下来出打乱公式的第二步,生成随机数(一样是

1

18

之间的,后面没特别说明的就是

1

18

之间的)

,并把第二步生成的这个随机数保存到

I1

中,这时要做一次检查,以防止

出现

UU

’或者

RR2

这样的公式出现,这里我的检查方法很简单,直接检查

(I1-1)/3

的整数

部分是否等于

(I2-1)/3

的整数部分,例如第一步是

U

,第二步是

U

,那么现在

I2

的值是

1

I1

的值是

3

,放进我前面说的两个公式里就是

(3-1)/3=0.666

…和

(1-1)/3=0

,它们的整数部分

相等,

检查结果就证明了第二步如果是我刚才的例子则是废步,

那么就重新生成一个随机数

并保存到

I1

中去吧(条件循环)

;再举个例子,第一步是

R2

,第二步是

L

,对照我的

18

个编号可以看到

R2

14

L

18

,那么两个公式就是

(18-1)/3=5.666

…和

(14-1)/3=4.333

…,

此时两个结果的整数部分不相等,这个情况下就说明

R2L

’不是废步。

接下来就说说第三步吧,第三步开始时先把

I2

的值保存到

I3

中去,然后

I1

的值保存到

I2

中去,

比如刚才前面所说的

I2

14

I1

18

那么经过我现在所写的之后,

就应该变为

I3=14

I2=18

了,

然后再次生成随机数,

并把这个新的随机数保存到

I1

里,

进行一次刚才第二步时

一样的检查,也就是看

(I1-1)/3

(I2-1)/3

的整数部分,这里就不废话了,接下来检查第三步

会不会造成和第一步产生废步,

也就是说不可以有

RLR

或者

F2BF

这样的公式出现,

检查

方法也很简单,先看

(I1-1)/6

(I2-1)/6

的整数部分是否相等,如果不相等则第三步没有和第

一步产生废步,后面的步骤可以跳过了(原理很简单,稍微想想就知道了)

;但是如果先看

(I1-1)/6

(I2-1)/6

的整数部分相等的话,

那么就还要再检查一次了,

这次要检查的是

(I1-1)/3

(I3-1)/3

的整数部分,如果相等则说明产生废步了,不等则不是废步。就拿刚才的第一步

14(R2)

,第二步是

(L

)

来说吧,第三步如果是

L

L2

L

’这三个的其中之一,那么在

第一次检查(除以

3

的)时就不通过了(请自己将

18

个编号套用公式算一下,后面都不写

出公式的计算过程了)

;那么第三步如果是

R

R2

R

’这三个其中之一的话,那么第三步

第一次检查则通过,于是进入第三步的第二次检查(除以

6

的)

,这里由于前面一步是属于

L

转的三个状态之一,所以要进入第三步的第三次检查(也是除以

3

的,不过

I2

换成了

I3

)

了,这时就会发现第三步和第一步出现废步,重新生成随机数给

I1

吧(条件循环)

现在生成第四步,再往后面和第四步是一样的,就不用写了。首先是把

I3

里保存的数字输

出成文字,

也就是

I3

1

则输出

U

2

则输出

U2

等,

接下来就是完全和第三步一样了,

没什么好写的了,

然后是就最后一步了,

当生成到了最后一步时,

检查完了

I1

不是废步就直接把

I2

I1

里保

存的数字输出成文字,至此整个没有明显废步打乱公式就生成成功了,我想写的也写完了,

呵呵。

PS

:对于

18

种转动在大部分编程语言里应该是可以写成一个文本数组吧?

最后附上我用上面所说的方法生成的

100

步公式吧,看看上面写的方法是否正确的。

打乱魔方软件_魔方打乱程序思路相关推荐

  1. 打乱魔方软件_魔方 打乱步骤生成 算法

    之前一直想写个魔方计算器来着,以前一直用的都是魔方小站上的那个,虽然经典,但是太不美观了,而且我是个前端,那页面,那代码,简直不忍直视,所以想自己写一个.可是各种原因一直没机会写完,只写了核心打乱部分 ...

  2. 打乱魔方软件_一种智能魔方打乱装置的制作方法

    本发明涉及魔方技术领域,尤其涉及一种智能魔方打乱装置. 背景技术: 在这个新新东西迸发迅速的时代,不少人们为了追求自己的爱好不懈努力着,其中不乏有许多魔方爱好者,一个普通人想要塑造成一个魔方大师(这里 ...

  3. plt转pdf软件_微信小程序重磅更新!PDF转Word,无需下载软件一键搞定!

    嗨,大家好我是小小迅~ 今天小小迅给大家带来了PDF的格式转换干货!不用下载任何软件,使用?这个重磅更新后的小程序即可. 对啦,文末还有小小迅的宠粉抽奖,内含6份会员大奖,包括:腾讯.爱奇艺.百度云. ...

  4. 证件照排版软件_证件照小程序换背景(制作免费版)

    证件照小程序制作免费版证件照,全程在线操作无需下载任何软件,仅需30秒完成制作还可以更换背景和衣服这是是一款非常好用的证件照制作软件,小伙伴们可以使用自行选定不同的模板,比如白底.红底.蓝底,简单操作 ...

  5. java原生的编译软件_原生态Java 程序员容易忽视的编程细节

    Java是Java程序设计语言和Java平台的总称,要想学好一门语言,打好基础最关键的,学习一种新的编程语言比学习新的口头语言要容易得多.然而,在这两种学习过程中,都要付出额外的努力去学习不带口音地说 ...

  6. cmd_关闭控屏软件_关闭卡死程序_解除任务管理器禁用

    关闭红蜘蛛 手动关闭后,总会自动打开 1.新建 txt,并复制下面命令到txt 2.将文件另存为cmd格式,双击执行 taskkill /im REDAgent.exe /f taskkill /im ...

  7. 九九乘法表python语言编程软件_编写Python程序,输出如下的九九乘法表_学小易找答案...

    [其它]写出下图的梯形图程序对应的语句表 (26.0分) [简答题]PLC一般的编程语言有几种?分别是什么? (5.0分) [其它]定义一个getMax函数,返回三个数(从键盘输入的整数)中的最大值. ...

  8. 如何用python制作动画的软件_大牛Python程序员制作3D动态可视化教程

    Bar3D(3D 柱状图) name -> str 图例名称 x_axis -> str x 坐标轴数据.需为类目轴,也就是不能是数值. y_axis -> str y 坐标轴数据. ...

  9. 乐高魔方机器人编程及图纸_魔方机器人教程图纸程序下载【Reinhard Grafl】作品...

    视频很小,可以用流量观看,不是土豪也没事. 下面先看一下使用说明的翻译吧. 1. 搭建 用LDD打开release/CubeSpinner.lxf,照图搭之!这个魔方机器人的大多数零件来自EV3套件, ...

最新文章

  1. 034_ JDK的Enumeration接口
  2. 太酷了!Linux的30 个实例详解 TOP 命令!
  3. Nginx实现负载均衡时常用的分配服务器策略
  4. Apache Flink Meetup,1.13 新版本发布 x 互娱场景实践分享的开发者盛筵!
  5. 单例设计模式-静态内部类
  6. COG云原生优化遥感影像,瓦片切分的应用实践
  7. JAVA如何选中一行上移,怎么把表格一行整体上移
  8. Linux内核协议栈分析之——tcp/ip通信并不神秘
  9. mybatis开启log_mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台...
  10. 基于WF的意见征集6(浅析)
  11. android dagger2 讲解,dagger 2 详解
  12. 异数OS 开启5G时代应用服务器大门
  13. 完美解决Chrome主页老是被毒霸网址大全篡改
  14. Troubleshooting: WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!
  15. mybatis 读取blob数据
  16. 青花瓷音乐的单片机c语言程序,c语言曲谱_单片机c语言音乐简谱代码
  17. python 深圳找工作_讲讲自己来深圳后找工作的经验吧!
  18. 必看干货!微信营销话术,微信营销技巧有哪些
  19. JavaScript基础第六天数组
  20. iatf16949内审员_《IATF16949:2016内审员实战通用教程》出版了

热门文章

  1. excel对不同岗位进行名次排序
  2. JAVA程序猿推荐看的15本书_错过了是你损失
  3. Proteus:logic contentions detected on net B15
  4. mysql图形查询操作 点找面及面找点 Polygon获取中心点坐标 空间地理位置计算
  5. Linux中硬盘smart故障,硬盘驱动器 – 此SMART自检是否表示驱动器出现故障?
  6. CSS浮动-5.1浮动比较重要-使用folat属性来设置元素的浮动-left-right-none
  7. mac 上格式化移动硬盘出现MediaKit报告设备上的空间不足以执行请求的解决办法
  8. java图片压缩质量_java图片高质量压缩
  9. mysql报08S01的错误- SQL Error: 0, SQLState: 08S01 偶发
  10. STorM32 BGC 三轴云台学习(一) 通信协议分析