java 三维旋转立方体_java - 如何通过旋转来计算立方体的所有方向,而不重复方向? - SO中文参考 - www.soinside.com...
我正在研究一个应用程序,以找到给定特定起始结构的拼图立方体的可能解决方案的数量。
我将所有唯一的解决方案存储在内存中,将与给定结构进行比较,以确定可能有多少解决方案。
为此,我必须围绕每个面将立方体旋转90度,共4次,以便检查所有可能的方向。稍后我将考虑思考。
[使用一个立方体,有6个面进行4圈旋转,总共进行24个操作。
由于围绕一个轴的旋转等效于围绕另一个2轴的旋转,因此我努力实现高效的算法'。
例如:绕x轴旋转产生的方向与绕y轴然后绕z轴旋转的方向相同。因此,我当前的实现需要64个操作,这是多余的,因为我多次检查相同的方向。
当前算法:public static int getPossibleSolutionCount(Map pieces)
{
int count = 0;
for (Solution s : solutions)
{
for (int z = 0; z < 4; z++)
{
for (int x = 0; x < 4; x++)
{
for (int y = 0; y < 4; y++)
{
if (s.isDerrivedFrom(pieces))
{
count++;
}
//all rotation calls rotate the piece / structure byt 90 degrees
pieces.values().forEach(piece -> piece.rotate(GameObject.Axis.Y_AXIS));
}
pieces.values().forEach(piece -> piece.rotate(GameObject.Axis.X_AXIS));
}
pieces.values().forEach(piece -> piece.rotate(GameObject.Axis.Z_AXIS));
}
}
return count;
}
如何改善这一点,以便不重复相同的方向,即,我只能检入24次迭代,而不是64次。
java 三维旋转立方体_java - 如何通过旋转来计算立方体的所有方向,而不重复方向? - SO中文参考 - www.soinside.com...相关推荐
- java凌晨12点_java - JAVA如果我在每天中午12点之后安排我的时间表,会发生什么? - SO中文参考 - www.soinside.com...
它实际上是Timer / TimerTask组合(link)的更通用的替代品 此外,Java 8提供了一些有用的工具来进行所需的时间计算.一个例子可能是: private final Schedule ...
- shell看java控制台_java - 为什么我的shell脚本的输出不能打印在控制台? - SO中文参考 - www.soinside.com...
我试图用java在控制台打印一个shell脚本的输出.当我手动运行该脚本时,我得到C:/Users/user1/Desktop/shell.sh: line 78: /usr/ucb/ps: No s ...
- 另一个.java文件调用_java - 如何调用另一个类“写文件”的方法? - SO中文参考 - www.soinside.com...
在我的Android应用程序,我想有一类处理所有"写入/读取到文本文件"的行动.所以,我根本就调用我的readUserFile.java文件我想的方法.但我的方法将不会在该文件中工 ...
- java游戏移动_java - Java游戏 - 如何让敌人移动? - SO中文参考 - www.soinside.com
Java游戏 - 如何让敌人移动? 问题描述 投票:1回答:2 我正在做一个射击游戏,并添加了许多带阵列的敌人,然后在地图上给他们一个随机位置,但我不知道如何让他们在到达他们的位置后移动.这是我的敌人 ...
- java方法未定义类型_java - 方法未定义为类 - SO中文参考 - www.soinside.com
我试图在eclipse中运行一个使用名为getArea(一个对象)的方法的代码.我目前收到错误说 对于getArea(ComparableRectangle)类型,方法RectangleTest未定义 ...
- java keytool 导入证书_java - Keytool无法导入证书 - SO中文参考 - www.soinside.com
在尝试导入证书时,我收到一条错误,导致无法导入,因为在这种情况下别名(tomcat)已经存在 $ keytool -import -v -alias tomcat -file tomcat.crt - ...
- java按钮不显示中文_java - 按钮没有显示日志也不吐司[复制] - SO中文参考 - www.soinside.com...
你好,我是新来的Android工作室我刚刚学会了如何记录和烤面包的工作,所以我想测试一下,但我的按钮没有显示任何.下面的代码: main activity.Java import android.su ...
- java activemq 断线_java - 防止ActiveMQ重新连接失败时自动退出 - SO中文参考 - www.soinside.com...
我有一个小型的spring-boot应用程序,该应用程序连接到ActiveMQ上的一个或多个主题,这些主题在启动时在应用程序的application.properties文件中设置-然后将这些消息发送 ...
- java中使用几率_Java中使用蒙特卡洛算法计算德州扑克成牌概率(二)- 计算牌面分值...
德州扑克中比较重要的一个算法就是计算牌面的得分,不仅仅关乎概率计算的结果,同时也需要很高的性能.蒙特卡洛算法计算的次数越多结果越准确,因此算法的性能至关重要.下面是一个高性能的牌面java计算算法. ...
最新文章
- Ubuntu 14.04 64bit上安装Scrapy
- 干货丨机器学习中的模型评价、模型选择与算法选择
- android工程建立到最后一步提示unsupported template dependency的解决方法
- 大型企业网络配置系列课程详解(四) --HSRP和VRRP配置与相关概念的理解(一)...
- Distinct Characters Queries CodeForces - 1234D(线段树求区间字母种类数)
- java Math 方法
- 能在任意一种框架中复用的组件,太牛了!
- 01tire+洛谷P4551 最长异或路径
- epoll边缘触发_4.2.3、epoll:水平触发与边缘触发
- 会向业务“砍需求”的技术同学,该具备哪6点能力?
- centos在文本中搜索字符串_linux(centos8):用grep命令查找文件内容
- 神奇的go语言(聊天室的开发)
- RE管理器root explorer基础操作教程
- yii2 关系...
- 破解版超级数据恢复软件-内含已破解注册码
- 汇编语言工具(DosBox、debug)下载与安装教程
- 2013年MBA、MPA、MPAcc入学考试英语辅导教材
- 计算机基础知识--->对张海藩老师所著《软件工程》的这本书的一些知识总结
- Saber吃苹果,保持每箱苹果数量递增
- 《2018中国直销银行白皮书》发布 银行面临“颠覆式创新”