数据算法问题
一个人手上有一张表格,表格上有且仅有5个格子,编号依次为a1--a5;我们用1表示某个格子涂满,0表示格子为空,当仅a1涂满时(5个表格的状态组合值为:10000),表示他拥有去一楼的权限;。。。以此类推,01000 拥有去二楼的权限;
00100 拥有去三楼的权限;
00010 拥有去四楼的权限;
00001 拥有去五楼的权限;
10010 拥有去一楼、四楼的权限;
00101 拥有去三楼、五楼的权限;
。
。
。
。
那么如果要表示拥有去六楼权限,或者去七楼的权限,或者去六楼与八楼的权限呢(只用这5位的0与1两种状态组合值表示)?怎么处理?
------解决方案--------------------很明显仅5位,用0和1表示不过来这些组合
------解决方案--------------------8楼需要8位
1 2 4 8 16 32 64 128 这些数组合最大为255(即11111111,8位)
------解决方案--------------------2*2*2*2*2,才24种情况,这个已经不是算法能解决的问题了吧?
------解决方案--------------------00100 拥有去三楼的权限;
00010 拥有去四楼的权限;
00001 拥有去五楼的权限;
10010 拥有去一楼、四楼的权限;
00101 拥有去三楼、五楼的权限;
。
。
。
。
以上是怎么来的,题目里面的吗?
------解决方案--------------------从LZ题意里看,一个格子代表一个楼层,一共才5个格子,怎么好表示6楼呢,逻辑上也对应不上啊。
要表示6楼,得多出来格子才行,按照题意的话,几层楼就要几个格子,就是几位。
------解决方案--------------------
对,按楼主的意思,有几层楼就要有几位,现在5位只能表示五层楼