MATLAB:使用For循环划分项目

MATLAB:使用For循环划分项目,matlab,function,for-loop,matlab-guide,Matlab,Function,For Loop,Matlab Guide,我需要一些帮助来解决课堂上分配给我的一个问题。这是我们对循环的的介绍。问题是: 考虑下面的谜语 到目前为止,我只有这些: function pile = IslandBananas(numpeople, numbears) for pilesize=1:10000000 end 我非常感谢你的意见。谢谢大家! 我会帮助你,但你需要更加努力。而且,您只需要一个for循环。首先,考虑如何构造此算法。你知道你必须使用for循环,所以这是一个开始。那么让我们来想想这个问题到底是怎么回事 1) 你有

我需要一些帮助来解决课堂上分配给我的一个问题。这是我们对循环的
的介绍。问题是:

考虑下面的谜语

到目前为止,我只有这些:

function pile = IslandBananas(numpeople, numbears)
for pilesize=1:10000000


end

我非常感谢你的意见。谢谢大家!

我会帮助你,但你需要更加努力。而且,您只需要一个for循环。首先,考虑如何构造此算法。你知道你必须使用for循环,所以这是一个开始。那么让我们来想想这个问题到底是怎么回事

1) 你有一堆

2) 第一天晚上,有人把这堆东西分成3块,发现剩下一块,这意味着
mod(pile,3)=1

3) 但是他丢弃了多余的香蕉。这意味着
(桩1)

4) 他拿走了三分之一,剩下三分之二。这意味着
(2/3)*(桩1)

5) 早上,他们把这堆东西分成三份,然后又发现剩下一份,这意味着
mod((2/3)*(pile-1),3)=1

6) 但是他们丢弃了多余的香蕉。这意味着
(2/3)*(桩-1)-1

7) 最后,他们必须每个人至少有一个香蕉,如果它是最小的一堆可能。因此,最小桩必须为
(1/3)*((2/3)*(桩-1)-1)=1

我基本上已经给了你答案,剩下的你可以用公式
(1/3)*((2/3)*(pile-1)-1)
和一个简单的if语句来测试可能的最小整数,即1。这可以在for循环内的四行中完成


现在,将其扩展到任意数量的人和任意数量的熊,需要在公式中进行两个简单的替换!如果您的老师要求,可以很容易地将其拆分为两个嵌套的for循环。

不完全如此。首先,你的作业令人困惑。这段MATLAB代码甚至不会运行。如果愿意,您可以将代码分解为多个步骤,这可能有助于您理解过程,但实际上您需要做的只是在for循环中说,
endpile=formulaigaveyu
,然后立即进行适当的测试,以验证
endpile
是否为整数,如果您包含break语句,知道如何使用if和for循环不是MATLAB特有的,而是编程的基本规则。您需要回顾这些概念并认真尝试。除非你这样做,否则我不能再帮你了。我已经提供了完整的答案。你需要思考这个问题并为自己编写代码,显然你需要练习。至于参考资料,可在互联网上随时查阅。请认真做好自己的工作。为什么删除了大部分问题?只要表现出更多的努力,社区一定会准备好提供帮助!删除练习的目的并只留下一个无意义的代码片段并不是对这个问题的真正改进。