魔方吧·中文魔方俱乐部

标题: 盲拧可运算的编码法理论 [打印本页]

作者: woodd    时间: 2011-2-7 05:25:40     标题: 盲拧可运算的编码法理论


抛砖引玉,希望能够让其他玩家们加以完善与补充.
对本帖理论有任何批评与想法欢迎指正.我将会整理各位的想法妥为编辑,因本人中文表达能力有限,
有措词不当之处请多见谅.

可计算的编码法,可以利用现有的计算机演算法加以改良将所需记忆编码压缩,降低记忆量,如果能设计出
让人脑快速运算,利用运算与记忆量可调配的机制,将可能诞生出更适合¨多个¨盲拧的方法.欢迎各位加入
讨论.

首先说四步法是必须分别处理

1.角方向2.楞方向3.角位置4.楞位置

以下只述及楞方向.

楞块共12块,如果用原先记忆错误方向楞块,运气最好的情况是没有楞块方向错误,记忆码数为0,
最差情况是12块方向全错,多数情况则是6-8个楞块方向错误,于是你必须记忆通常是6码到8码.

我将他改进成只需要记忆最多3码.

3阶有3层,每一层用1码就可以知道那层的楞方向错误状况.

首先我赋予每一层每个位置有不同的权值,如下图:
1.png

其中,绿色是顶层的平面图,蓝色代表中层剖面图,红色代表底层.
(中层比较特别,请对一下你的方块比对一下楞块位置在角落.)

如果权值标示的该楞块方向正确,则为0,如果该楞块错误,值为该权值.

我举个例子,假设顶层我标示1,2,这两个位置错,那么我的第一码就是1+2=3.也就是3.
那么如果顶层全错呢?1+2+4+8=15,那么值就是15,也就是16进位的F.
我这里列出计算机16进位与我们传统10进位对照一下:

1到9,十进位与十六进位是一致的.之后如下:
10=a,11=b,12=c,13=d,14=e,15=f.

我的一层最多是全错,因此最高值为F,
盲拧时一想到F,马上就知道是四个楞块方向错,
如果E,那就是代表该层权值为2,4,8的楞块方向错.

那么暂时我们先假定真实情况就是顶层2,4,8权值的楞块方向错,2+4+8=14=E.那我们将2与4的楞块
方向转正,剩下8的楞块还没转正,那么我们的码数将是E-2-4=8,剩下就是8权值还没转正.
我必须让我的每一码为0,代表我的所有楞块方向正确.

我的码数共三码,第一码顶层,第二码中层,第三码底层.

举个例子,一个打乱的3x3x3魔方
我记忆楞块方向例如:
7,9,D
如果用传统四步法的记忆楞块方向错误编码可能是
1,2,3,5,8,9,b,c                (1,2,3第一层5,8第二层,9,b,c第三层)

因此我的权值编码法记忆码数明显减少.

拧的时候,就是设法将7,9,D按照权值的原则减到0,0,0.

我想我的方法对盲拧速度上没有提升效果,并且除非对计算机编程没经验者,
在拧的当中与记忆当中需要马上以16进位换算成10进位,可能会降低速度.
但16进位与10进位比对很快就可以习惯.并且纪录时是很简单的加法,拧时运算是很简单减法,

如果用四步法进行多个盲拧,减少记忆量的好处会更明显.

补充内容在#11楼#24楼

[ 本帖最后由 woodd 于 2011-2-11 11:42 编辑 ]

附件: 1.png (2011-2-7 05:25:40, 20.91 KB) / 下载次数 25
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTMxMzA2fGVjZDMwNzI1fDE3MTYyMzA0MTl8MHww
作者: 太空奶牛    时间: 2011-2-7 05:28:02

先沙发再看看…
作者: zxy6350479    时间: 2011-2-7 06:18:20

色相内容还可以 根据不同中级面 再次减少
比如左右做中级面
换成前后做中级面
另外我兔年发明快速锻炼记忆法
电脑再来发
作者: Zyoung    时间: 2011-2-7 07:37:04

好帖!!待会研究研究~~
作者: erikchan002    时间: 2011-2-7 07:44:17

用十六進制都給你想到,強
的確,原本的二進制轉十六進制確是很方便

[ 本帖最后由 erikchan002 于 2011-2-7 07:48 编辑 ]
作者: 小强啊    时间: 2011-2-7 07:45:57

新想法,先顶一个,我也在一直专研四步法,争取把四步法练到最好
作者: 1900    时间: 2011-2-7 08:08:21

先占个地再慢慢看……
作者: redcarrot    时间: 2011-2-7 09:47:28

感觉不错啊!顶
作者: 奇趣屋toys    时间: 2011-2-7 09:51:10

写的相当的详细,不错,顶一下。
作者: hjblqzjcb    时间: 2011-2-7 10:29:24

非常好的方法!
下次试一下
作者: woodd    时间: 2011-2-7 10:44:41

补充说明:

此方法也适用于¨占星¨说的三步法.
http://bbs.mf8-china.com/viewthread.php?tid=6440&extra=page%3D3

对于盲拧方法,毫无疑问四步法练再熟也不会比彳亍法熟练后快,
但是彳亍法需要比较多公式量,如同速拧的Fridrich Method方法要记忆许多公式.
四步法就如同LBL法.一个步骤一个步骤处理.公式量很少.

只要一个角三循环(顺逆),一个边三循环(顺逆),一个边方向(色向),一个角方向(色向),
再加上两个同时处理角与边的PLL,一共六个公式搞定.

在盲拧时记忆魔方的状态,彳亍法短暂记忆比四步法少.但是许多人觉得不好记,
那是因为我们比较常去记忆一串不规则的数字排列,例如电话号码,
数字的中文发音又比字母顺口,但对英语为母语者,他们对不规则字母会比我们习惯.
你可以看M2R2法的编码也是用字母去编.

学习难度四步法与彳亍法一样.进步的速度四步法刚开始会比较快.
如果你说到底哪个方法好,等于你问学CFOP与LBL是一样的问题.

至于¨占星¨说的三步法,请先看上面连结,然后你拿魔方做下面这个公式,
M´U2MU2  然后再去看看彳亍法公式表,就知道¨占星¨的意思.

另外.........
许多公式其实转完一样,公式不同,例如M´U2MU2 这个公式与 F2MF2M´ 是一样的,
根据自己手型情况,选择顺手的公式,练手顺时不一定要照搬那些高手的,
因为他们手型与自己不同,有人食指长有人无名指长,因此要自己去挖掘自己的手法.

[ 本帖最后由 woodd 于 2011-2-7 10:57 编辑 ]
作者: W_FISH    时间: 2011-2-7 10:57:18

楼主好贴,亏你能想得到。
可惜我是彳亍法啊。
作者: 乌木    时间: 2011-2-7 11:03:55

以前有人提出过,把原来四步法所做的12个棱块的色向编码,每四位用一个十六进制数字代表,比如,棱块色向编码为0100 1100 0111,记为“4” “C” “7” 。只是没有被众人接受,不知何故多数仍用原来的谐音记忆数字法。
作者: woodd    时间: 2011-2-7 11:27:57

原帖由 乌木 于 2011-2-7 11:03 发表
以前有人提出过,把原来四步法所做的12个棱块的色向编码,每四位用一个十六进制数字代表,比如,棱块色向编码为0100 1100 0111,记为“4” “C” “7” 。只是没有被众人接受,不知何故多数仍用原来的谐音记忆数字法 ...


多谢乌木老师的提示原来这方法早有!!??
当初我就是认为颜色方向不正确只有正与反,或说对与错,
学过编程,经常用计算机的规则来思考问题,于是把他用0与1,
同时刚好每一层有四个楞块,刚好是2的四次方,够用16进位来放这个记忆量三层刚好不超过FFF.同理3x3x4的魔方也可以用这种方法去记忆.

乌木老师真是见识广博学多闻,以后有问题向你求请教会比自己来得快.


我想好方法必须有好的教程,当初有些人认为彳亍法比四步法难学,
我觉得不是方法难学,而是在于四步法的教程可能做得比彳亍法明瞭.

[ 本帖最后由 woodd 于 2011-2-7 20:39 编辑 ]
作者: 战斗机    时间: 2011-2-7 11:30:25

兰州好理论,我就喜欢你这样发理论贴的人!
作者: 夜雨听风    时间: 2011-2-7 11:39:42

天哪……看了一半晕了……等上电脑吧
作者: Xwam    时间: 2011-2-7 12:45:42

慢慢看看了~~支持一下了~
作者: yeees    时间: 2011-2-7 13:06:25

不错的理论,给楼主加分!
作者: 2rabbits    时间: 2011-2-7 13:11:10

那么对于位置是否也能用类似的方法简化呢?
作者: angler    时间: 2011-2-7 13:23:03

方法不错 试试
作者: woodd    时间: 2011-2-7 20:32:02

原帖由 2rabbits 于 2011-2-7 13:11 发表
那么对于位置是否也能用类似的方法简化呢?


这个问题我也思考过,希望将问题留给乌木老师来回答会更给力.
作者: 乌木    时间: 2011-2-7 22:13:48

其实我不懂编程什么的。既然棱块色向代码只是0和1,又正好是三个四位,楼主就用计算机知识提出简略的记忆法,那么,角块色向、位置和棱块位置的编码既不是单单0和1,编码的位数又不总是四的倍数,恐怕就不能用这种简略记法了吧?要简略的话,恐怕要另辟蹊径。
作者: aubell    时间: 2011-2-8 00:31:35

这个方法用到是“数字脑”,也许不如“图形脑”好使。要经过先编码,然后记忆,然后还解码,尽管解码速度可以很快。
LZ可以尝试一下,记一个三角形代表上边UB,UL,UR不正确,倒三角代表UF,UL,UR三个不正确,L型代表中层的棱三个不正确,也可以用手指掐几个不正确的... ...比较一下,图形解码的速度和pack,unpack哪一个更快。
仅供参考。
作者: woodd    时间: 2011-2-8 01:08:29

原帖由 乌木 于 2011-2-7 22:13 发表
其实我不懂编程什么的。既然棱块色向代码只是0和1,又正好是三个四位,楼主就用计算机知识提出简略的记忆法,那么,角块色向、位置和棱块位置的编码既不是单单0和1,编码的位数又不总是四的倍数,恐怕就不能用这种简 ...




这里最开始我要向乌木先生精神致敬.许多玩了几年的玩家都已经开始潜水,厌倦反覆回覆这些新手的问题.
也别怪这些老手,他们这几年重复的问题回答一千次都有可能.
我晚上打扰乌木先生,他对我这新手都这样认真与重视,不知道过几年后我能否能有他这样的热忱.

接着谈问题,的确如乌木先生所说,另辟蹊径。

经乌木老师的提点,我将成果描述一下:

首先¨权值¨方法思路源自以下三个地方:
16进位,0与1的概念,还有一个就是结合linux作业系统指令¨chmod¨档案权限,
chmod指令参数就如同本帖描述的¨权值¨意思一样,我想这个网站的admin应该了解这意思.

有点离题,就不多说计算机部份.

以下两个探讨,角方向,与位置移动部份

16,01这个刚好符合楞方向,权值法给予权值也刚好用一个16进位码就解决,这是一个巧合.
那么说说角方向,每个角方向有3个可能,每一层有3的四次方,共两层,不符合16进位.

因此我们必须额外的去设计能符合角方向情况的进位法.我们要去习惯新的进位法是有难度的.

虽不符合16进位法,但不影响权值的方法,

我们也可以附于不同的权值让他在加加减减当中让出现的数字能够让我们知道角的方向状态.
我没去精确计算与设计,暂时估算认为记忆前必须做双位数字的运算,拧时也必须做双位数运算不符合效率,
记忆码数哪怕将数字与26字母都算进去,单一码容不下一层的角情况,更何况我们有两层,因此可能要记忆4码.
码数,还要反反覆覆做我们不熟悉的进位方法双位数运算,效率上不高.如果我们要减少到只要记忆一码,
也不是做不到,方法是必须再增加除数字外与26字母外的其他符号进来,那么就可以做到1码的情况,但
进位法已是高阶进位法,我们要习惯的不只是新型进位法,还必须习惯这个进位法每个符号的排列顺序.

现行角方向记忆与处理在四步法中,只要心中记个形状错误的图形(或说形状)不需运算,方法比较简单有效率,
所以权值方法与开发新的进位法,对这部份没有价值.

接着说位置部份,多数已经能复原方块但未学过盲拧的人,第一次看别人盲拧可能以为盲拧的人是记住方块
混乱状态,然后闭上眼睛以传统公式去拧,同时做空间运算.但瓦西里都曾说过,当时他认为不可能达到的.
直到知道盲拧是用特殊公式以后才恍然大悟.

我想位置的处理方法如果用权值法就如同用空间运算一样,必须做相当复杂的运算.同时将又必须设计出更高阶
的进位法.那么何不干脆直接用空间运算.

记忆码数可以用更高阶的进位法去降低,但越高阶的进位法会让已经习惯10进位的我们更加难以适应,
我们必须去平衡记忆量与运算,就如同设计程序,你必须衡量内存与CPU的占用情况.根据实体的计算机性能
来弹性设计.避免出现过度使用记忆装置或是过度使用运算装置.

权值方法及新的进位法未必没有开发的空间,例如他可以随更高阶的进位法去减少记忆码数,用提供运算量的
方法去降低记忆量,因此我认为如果要挑战¨多个盲拧¨,这个方法还是有价值的.

也许有个疑问,我们能习惯高阶进位的运算吗?如同10进位一样快吗?我认为不会比较快,但可以接近.
关键是时间.如果你让一个没学过数学的小孩,先学16进位,而后学10进位,那么他的16进位会算得比
10进位更快.另我们有高阶进位法还必须有这么多的符号做顺序排列,这点我想也能够适应,举个例子,国内
小孩第一次学排列符号顺序是单个阿拉伯数字的排列,接着学26个字母排列,我们设计的进位法也是必须有
足够的符号去排列,并熟练到很快反应到他的顺序,如此才能够去做运算.

以上只是进位法不同,本质上也是传统我们对数学的的加减运算.

我们受传统教育的影响,已经失去许多人类天生的本能,在强化我们数值运算能力的同时,便降低我们
对空间的运算能力,如果不背公式或者用传统睁眼复原方块的方法去盲拧二阶,这是锻炼我们恢复空间运算能力
的方法.并且相信应该有许多玩家可以达到.

我们本身其实就具备交换空间运算天性,只是没有像传统数学系统的开发,我们从小教我们数值运算,但却没有锻炼
我们空间运算,于是我们对空间运算能力还停留在很原始阶段.魔方的发明者创造魔方,当初是为了方便探讨空间置
换的理论.

我时时怀疑我们现在的教育与科学到底是不是能够释放人类潜能的方法.
曾看过discovery频道播出一个黑猩猩与世界记忆排名第二的人比记忆,比的方法是画面同时出现许多数字,
接着马上消失,消失后必须按照数字顺序去点击萤幕,我们人类输了.

我认为原因是人类看到数字会联想到文字及其本身的意义,我们是以语言的方式去联想,以语言的方式去记忆与思考,
而黑猩猩他是以他的视觉去记忆与思考,他不可能受到高等教育,他没有太多的联想.他不擅长语言,
他多数时间都是用他的视觉去感触与思索这个世界.所以这场比赛,我们要反思我们是如何输的.

语言的思考与记忆方式是线性,视觉思考与记忆是平面,空间记忆与思维是立体的,
因此我们用不同的思维与记忆方法去玩这个魔方,去考虑我们大脑该怎么用.

彳亍法已经是一个相当成功的方法,
希望诸位前辈领引玩家们¨另辟蹊径¨,探寻更多的方法,许多方法都可能实现,许多
方法最初都只是一个概念,需要有玩家们像彳亍一样的毅力,让更多的方法在国内诞生.

敝不才(白魔),诸位关爷前耍刀,别见笑.

[ 本帖最后由 woodd 于 2011-2-8 14:34 编辑 ]
作者: woodd    时间: 2011-2-8 01:32:50

原帖由 aubell 于 2011-2-8 00:31 发表
这个方法用到是“数字脑”,也许不如“图形脑”好使。要经过先编码,然后记忆,然后还解码,尽管解码速度可以很快。
LZ可以尝试一下,记一个三角形代表上边UB,UL,UR不正确,倒三角代表UF,UL,UR三个不正确,L型代表中 ...


我认为你的方法更简单明瞭,好使,同时实用.在此向各位也推荐你提的方法.
我提出的只是多一个方法,不一定会好用或是习惯,多一个思考的课题让大家知道,以运算来减少记忆量.
但想追求实用,追求速度,大幅度的提升效率,现阶段帮不上忙.
作者: aubell    时间: 2011-2-8 17:24:13

据多盲的高手讲,用的就是这种十六进制编码记忆。
支持楼主开发减小记忆量的方法!
要是能压缩编码的总长度就好了。

[ 本帖最后由 aubell 于 2011-2-8 17:25 编辑 ]
作者: 洛阳狼王    时间: 2011-2-8 18:16:29

背编码总是忘。
作者: liuliuliu789123    时间: 2011-2-12 14:37:18

盲拧就是要研究怎样减少临时记忆量,永久记忆量和运算量多不怕。
作者: angler    时间: 2011-2-12 15:01:39

很好的方法    有空实践一下




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2