算法题:100头牛和牛奶问题

2021年3月17日14:52:52 发表评论 784 次浏览

送牛奶的人有100头奶牛, 数量从1到100。每头奶牛都根据他们的数量喂奶, 也就是说, 我的奶牛每头喂升的牛奶。米尔克曼有10个儿子, 他想将自己的母牛分为10个儿子, 以便每个儿子都得到等量的牛奶, 任务是帮助他了解这些母牛在儿子之间的分配。

解:

正如我们所知,这头母牛产一升牛奶。因此,首先让我们数一数从这些奶牛身上获得的牛奶总量。这个问题可以用等差数列和来解决。

我们知道从1开始的n个数字的总和总是sum = n *(n + 1)/ 2

因此, 如果从100头奶牛获得的牛奶总量为total_milk = 100(100 + 1)/ 2 = 5050 升。

正如问题所表明的那样, 应该以每个儿子都得到同等数量的牛奶的方式来分割母牛。因此, 每个儿子都应该喝5050/10 = 505升牛奶。

现在, 我们的主要问题是将1到100的数字相除, 这样每个儿子应该得到10头母牛, 其数字总和为505。

让我们使用以下示例来减少此难题的复杂性:

现在让我们假设你有10个数字, 并提示将其分成5个人, 以便每个人得到这个数字相等的总和。因此这10个数字总和为55, 现在这5个人中的每个人将得到11总和, 因此显而易见, 每个人都会得到两个总和为11的数字。因此除法将是这样的:

第一个人-> 1, 10第二个人-> 2, 9, 第三个人-> 3, 8第四个人-> 4, 7第五个人-> 5, 6, 因此每个人将得到11。

现在回到问题所在, 我们有100个数字, 我们必须将其分为10组, 以便每个儿子都能获得505升的牛奶。

Firstson-> 1, 2, 3, 4, 5, 96, 97, 98, 99, 100 Second_son-> 6, 7, 8, 9, 10, 91, 92, 93, 94, 95 Third_son-> 11, 12 , 13、14、15、86、87、88、89、90第四子-> 16, 17, 18、19、20、81、82、83、84、85第五子-> 21、22、23、24、25 , 76, 77, 78, 79, 80 Sith_son-> 26, 27, 28, 29, 30, 71, 72, 73, 74, 75 Seventh_son-> 31, 32, 33, 34, 35, 66, 67, 68 , 69, 70八分-> 36, 37, 38, 39, 40, 61, 62, 63, 64, 65九分-> 41, 42, 43, 44, 44, 56, 57, 58, 59, 60 > 46、47、48、49、50、51、52、53、54、55

正如问题所述, 每个儿子都应该得到等量的牛奶。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: