首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >完成可能的二进制序列的列表将得到一个有间隙的二进制序列

完成可能的二进制序列的列表将得到一个有间隙的二进制序列
EN

Stack Overflow用户
提问于 2013-05-13 06:06:27
回答 1查看 184关注 0票数 0

所以,我正在用Scilab编写一个程序,它解决了一个二进制难题。然而,我遇到了一个问题。谁能给我解释一下解决有间隙的二进制序列背后的逻辑(比如10-10-11 -1,其中-1表示空单元格。我想要给定序列的所有可能的解决方案。到目前为止,我有:

代码语言:javascript
复制
function P = mogelijkeCombos(V)
for i=1:size(V,1)
    if(V(i) == -1)
        aantalleeg = aantalleeg +1
    end
end
for i=1:2^aantalleeg 
    //creating combos here
end
endfunction

抱歉,一些单词在荷兰语中是aantalleeg的意思,我的意思是空单元格的数量,希望我给了你们足够的信息。我不需要任何代码编写,我只是喜欢我如何才能使每一个可能的再现,因为我完全卡在自动取款机的想法。

顺便说一句,这是一个学校作业,但是作业比这个大得多,它只是一个很小的部分,我需要一些想法

提前使用ty

EN

回答 1

Stack Overflow用户

发布于 2013-05-13 15:19:08

简短的回答

您可以通过扩展代码来创建组合,并创建所有可能的长度为"amountempty“的二进制字,然后在V的空单元格中逐位替换它们。

分步说明

查找所有空单元格positions

  • Count您找到的位置数(等于空单元格的个数)

  • 使用您的计数长度创建所有可能的binary numbers

  • 为您生成的每个二进制数,将位放入空单元格

  • 打印/存储填充了位的可能序列

示例

查找所有空单元格位置

例如,您可以从左到右从1开始检查,如果单元格为空,则将该位置添加到您的位置列表中。

代码语言:javascript
复制
V = [1 0 -1 0 -1 1 -1] 
          ^    ^    ^
          |    |    | 
     1 2  3 4  5 6  7

// result
positions = [3 5 7]

统计你找到的位置数

代码语言:javascript
复制
//result 
amountempty = 3;

创建长度为amountempty的所有可能的二进制数

您可以使用SciLab中的dec2bin函数创建所有可能的数字或单词。可能字的数量很容易确定,因为您可以通过大量位长的字来知道how much separate values can be represented

代码语言:javascript
复制
// Create the binary word of amountEmpty bits long
binaryWord = dec2bin( i, amountEmpty );

生成的binaryWord将是一个字符串,您必须将split it分成不同的位和convert it to numbers

为您生成的每个binaryWord创建

现在,通过从原始V开始创建一个可能的解决方案,并使用binaryWordPerBit中的一小部分填充位置列表中的每个空单元格

代码语言:javascript
复制
possibleSequence = V;

for j=1:amountEmpty
    possibleSequence( positions(j) ) = binaryWordPerBit(j);              
end

祝你"veel met je opdracht“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16512514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档