题
我的设备的列表和信道的一个位掩码它们在(信道编号0..3)。可以有多达256个装置。
例如:
Device1: 1 0 0 1 (on channels 0, 3)
Device2: 0 1 1 0 (on channels 1, 2)
Device3: 1 1 0 0 (on channels 2, 3)
我需要找到的信道的位掩码,这将导致在该消息中要由所有设备用最少可能的不必要的消息接收。
例如数据正确的结果位掩码是1 0 1 0
(信道1传送到设备2和信道3至Device1的和设备3)和0 1 0 1
(信道0提供到Device1的和信道2到设备2和设备3),它们中的一个是确定。
结果位掩码1 1 0 0
将是不好的,因为设备3将获取消息的两倍。
解决方案
由于有可能不是一个完美的解决方案,我们只对结果我只想用通过所有16个可能的掩码的强力方法和迭代,看哪个(些)是16种可能性/是最优的(最小数目重复的消息)。
其他提示
看一看回溯搜索。
您可以添加1点的数量在每列找出多少“酒会”,将为该通道上的消息出现。这样,对于任何有效的面膜(到达所有设备),您可以轻松地添加了所有设备接收的消息的总数。然后,您可以蛮力所有16个可能的面具看到哪些会实际工作,并选择一个,这两个作品,具有接待的最低数量。走走蛮力部分将需要对整个矩阵运算。
奇怪的是,如果你真的有256台设备,你很可能需要在所有通道上直接发送。
不隶属于 StackOverflow