正六面体用若干种颜色染色的问题解法
注意:本文介绍的方案有误,正确答案为240种。http://books.google.com.hk/books?id=On5QwCvEA9kC&pg=PA105&lpg=PA105&dq=%E5%85%AD%E9%9D%A2%E4%BD%93+%E5%9B%9B%E7%A7%8D%E9%A2%9C%E8%89%B2&source=bl&ots=Lc7xqJW4IC&sig=uG7Llh_kDgZSN3BGhLWaBU0nANg&hl=en&sa=X&ei=NYtXUYHFIY-UiQfhnYDQCQ&ved=0CEsQ6AEwAw#v=onepage&q&f=false
遇到一个问题如下
正六面体染色
正六面体用4种颜色染色。
共有多少种不同的染色样式?
要考虑六面体可以任意旋转、翻转。
算法如下:
1 #include <stdio.h> 2 #pragma warning(disable: 4786) 3 #include <set> 4 5 using namespace std; 6 7 void print(int arr[], int total_index) 8 { 9 const char *szColors[] = {"红", "黄", "蓝", "绿", "白", "黑", "紫", "灰", "粉"}; 10 const char *szSides[] = {"前", "右", "后", "左", "上", "下"}; 11 int index; 12 13 printf("%d: ", total_index); 14 15 for (index = 0; index < 6; index += 1) 16 { 17 printf("%s:%s ", szSides[index], szColors[arr[index]]); 18 } 19 20 printf("\n"); 21 } 22 23 void resolve(int nColorCount) 24 { 25 set<int> setHashs; 26 int arr[6 * 2]; 27 int index, index2, index3 = 0; 28 29 for (arr[0] = 0; arr[0] < nColorCount; arr[0] += 1) 30 for (arr[1] = 0; arr[1] < nColorCount; arr[1] += 1) 31 for (arr[2] = 0; arr[2] < nColorCount; arr[2] += 1) 32 for (arr[3] = 0; arr[3] < nColorCount; arr[3] += 1) 33 for (arr[4] = 0; arr[4] < nColorCount; arr[4] += 1) 34 for (arr[5] = 0; arr[5] < nColorCount; arr[5] += 1) 35 { 36 int hash_big = 0; 37 38 for (index = 0; index < 6; index += 1) 39 { 40 arr[index + 6] = arr[index]; 41 } 42 43 for (index = 0; index < 6; index += 1) 44 { 45 int hash_this = 0; 46 47 for (index2 = 0; index2 < 6; index2 += 1) 48 { 49 hash_this *= 10; 50 hash_this += arr[index + index2]; 51 } 52 53 if (hash_this > hash_big) 54 { 55 hash_big = hash_this; 56 } 57 } 58 59 if (setHashs.find(hash_big) == setHashs.end()) 60 { 61 setHashs.insert(hash_big); 62 print(arr, ++index3); 63 } 64 } 65 } 66 67 int main() 68 { 69 resolve(4); 70 return 0; 71 }
答案是700种方案
转载于:https://www.cnblogs.com/Shilyx/archive/2013/03/30/2990939.html
正六面体用若干种颜色染色的问题解法相关推荐
- 正六面体染色 正六面体用4种颜色染色。共有多少种不同的染色样式?要考虑六面体可以任意旋转
import java.util.ArrayList; public class 正六面体染色 { public static int sum = 0; /** * @param args */ pu ...
- Java正六面体4种颜色染色方式
/* * 1. 正六面体染色 正六面体用4种颜色染色. 共有多少种不同的染色样式? 要考虑六面体可以任意旋转.翻转. */ import java.util.ArrayList; public c ...
- C语言枚举类 口袋中有红、黄、蓝、白、黑5种颜色的球若干个
口袋中有红.黄.蓝.白.黑5种颜色的球若干个.每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况 #include<stdio.h> int main() { ...
- 口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取
* * 输入描述:出三个球,问得到3中不通过颜色的球口袋中有红黄蓝白黑5种颜色的球若干个.每次从口袋中任意取的可能取法.(枚举) * 问题描述: * 程序输出: * 问题分析:略 * 算法设计:略 * ...
- 口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中取出3个不同颜色的球,问有多少种取法?并输出每一种取法。
口袋中有红.黄.蓝.白.黑5种颜色的球若干个.每次从口袋中取出3个不同颜色的球,问有多少种取法?并输出每一种取法. 这是个组合问题,答案是C53=10C_5^3=10C53=10 使用枚举,代码如下 ...
- 口袋中有红、黄、蓝、白、黑5种颜色的球若干个,每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。
口袋中有红.黄.蓝.白.黑5种颜色的球若干个,每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况. 方法:(枚举) #include<stdio.h>int ...
- 口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法。(枚举、gcc编译)
1.题目 口袋中有红黄蓝白黑5种颜色的球若干个.每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法.(枚举) 2.代码 #include <stdio.h>void main( ...
- 【C】例9.12口袋中有红、黄、蓝、白、黑5种颜色的球若干。每次从口袋中先后取出3个球, 问得到3种不同颜色的球的可能取法,输出每种排列的情况
//口袋中有红.黄.蓝.白.黑5种颜色的球若干.每次从口袋中先后取出3个球, //问得到3种不同颜色的球的可能取法,输出每种排列的情况 #include <stdio.h> int mai ...
- 口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法。(枚举)
// 121212 第七章例7.7.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. ...
最新文章
- 燕大计算机专业档次,河北省高校排名:分为四个档次,燕大在第二档,第三档有八所高校...
- docker 启动mongodb
- Changes in Android 7 Nougat
- RotateDrawable
- python棋盘覆盖问题_棋盘覆盖问题可视化动图——python
- 解决c#,wpf程序带环境安装包体积太大问题
- 标准模块 queue
- 【Python游戏】Python基于pygame和random模块开发的一个拼图小游戏 | 附带源码
- matlab 直方图 拟合,MATLAB 直方图拟合
- 开始学习 HarmonyOS 嵌入式开发
- 产品经理学习笔记-简约设计(1)
- 360全景倒车影像怎么看_360度全景倒车影像真的很有用?水分有多少!
- js之原生js轮盘抽奖实例分析(幸运大转盘抽奖)
- 搬砖试金石!github星标7W算法刷题宝典,还愁拿不下大厂offer?
- Python快捷创建文件夹和文件详解
- java 开发微型公众账号应用
- Sagittarius's Trial I - 9 HDU - 1754 I Hate It
- 邂逅Flutter开发
- Android 在xml中更改纯色图片颜色
- 专科生建议学云计算吗?云计算未来发展前景如何?专科学云计算怎么样?
热门文章
- 从0基础学习MySQL数据库(三)
- Apache Hive DML语句与函数使用
- [深度学习]C++调用Python-YOLO模型进行目标检测
- 自定义可存数据的jquery 表情输入框
- 三个变量存在一个协整方程_Johansen结果显示三个协整关系是什么意思呢?
- 身上出现的游走性疼痛会是躯体化障碍导致的吗
- 自动售货机的php代码,查看“自动贩卖机”的源代码
- 【转】RS232、RS485、TTL电平、CMOS电平
- 7 Billion Humans游玩
- 自学51单片机 - 矩阵按键实验