【问题标题】:Mathematical mind boggler, very confusing possible new mathematical breakthrough [closed]数学令人难以置信,非常令人困惑的可能的新数学突破[关闭]
【发布时间】:2010-12-29 07:33:33
【问题描述】:

我不是想在这里开个玩笑,但我很困惑我已经连续 6 个小时试图弄清楚这个问题,现在在这里打开了大约 20 个记事本,15 个计算器,我无法计算它我总是最终得到了太多的过剩。

让我们在这里解释一些我们必须使用的变量。 说我们得到了

2566 最低点 / 2566 最高点

0 最小 xp / 4835 最大 xp

有 2 种类型的作业需要同时使用这两个变量(点数和 xp)

作业 (1) 每次点击减去 32 点,每次点击增加 72 xp。

作业 (2) 每次点击减去 10 点,每次点击增加 14 xp。

我正在尝试弄清楚如何正确计算超出部分。所以它会浪费最少的 Job(1) 来获得足够的积分来做尽可能多的 Job(2) 并且仍然达到最大 xp。

这就是我不想运行 Job1 的事情,直到没有剩余积分为止,因为这样做,Job1 将超过最大 XP (2566),我将永远无法执行任何 Job2。

我想获得最大可能的 Job2,然后使用适当的计算来实现或使用 Job1 溢出 2566 的 MaxXP 以始终达到最大 XP。我的情况几乎是我需要获得 2566 MaxXP 才能继续完成工作。在牢记这一点的同时,我想将最优先级放在 job2 上,并且只使用 Job1 来实现 2566 的必要 MaxXP 以将最小点重置为最大以重做整个过程。我正在尝试自动执行此操作。

这是我的方程式

amountOfJob1s = (minPoints / 32)

amountOfJob2s = (minPoints / 10)

excessXP = (amountOfJob1s * 72) - maxXP

如果excessXP

结果

mustDoJob1s = ???

mustDoJob2s = ???

如果有人能帮我解决这个问题,我可以在这里提出一个很好的方程式,我将不胜感激。

这在数学上是不可能的,或者我只是无法处理它我相信我有足够的变量。

【问题讨论】:

  • “新的数学突破?” - 不。
  • 答案?恐怕您首先必须发布一个有意义的问题。
  • 试着更好地解释你的问题。从我所见,只需运行 Job1 直到没有更多的点,然后运行 ​​Job2 直到没有更多的点。介绍+问题=好:)
  • 投反对票,因为这个问题非常不清楚。您的 cmets 似乎提出的问题与您的问题似乎相反,但让我如此不确定,甚至无法进行实际猜测。
  • 这个问题太不清楚了,无法回答。您还没有解释您的任何“变量”是什么,您要解决的问题的性质,“点”是什么,“xp”是什么等等。如果你对那些试图帮助你的人来说不是那么自负,这也会有所帮助。

标签: math polynomial-math


【解决方案1】:

job1为job1的数量,job2为job2的数量。我们剩下两个方程和两个未知数:

job1 * 32 + job2 * 10 = 2566
job1 * 72 + job2 * 14 = 4835

所以:

job1 = 45.683...
job2 = 110.411...

给定 job1 作为更高的 xp/point 比率,并且您想超过 4835 xp,向上舍入 job1,计算 job2 并舍入它下来。

job1 = 46

job1 * 32 + job2 * 10 = 2566
job2 = 109.4

job2 = 109

检查:

job1 * 32 + job2 * 10 = 2562 points
job1 * 72 + job2 * 14 = 4838 xp

完成。

两个未知数几乎不是“新的数学突破”:)

【讨论】:

  • 哇,伙计有点让我着迷于人们多么聪明,但是是的,你破解了它,你应该写一个关于这个的理论。大约 5 分钟前我得出了相同的结论,然后使用 2 LOOPS 阅读这篇文章,其中一个减少 MAX 可能的工作 2 并增加 MAX 可能的工作 1,并像你一样达到 109,46,但它的 CPU 很重,我不敢相信数学方程式因为这种东西确实存在谁想出了这些东西。
  • m=(32*14)-(10*72); x=(2566*14) -(10*4835); y=(32*4835)-(2566*72); x_answer=x/m; y_answer=y/m;
【解决方案2】:

我假设您希望获得尽可能多的“XP”,同时通过在两个“工作”中的每一个上“点击”整数次{n1, n2} 花费不超过 2566 个“点”。这是 Mathematica 中的答案:

In[8]:= Maximize[{72 n1 + 14 n2, n1 >= 0, n2 >= 0, 
  32 n1 + 10 n2 <= 2566}, {n1, n2}, Integers]

Out[8]= {5956, {n1 -> 80, n2 -> 0}}

或者,也许您需要正好花费 2566 点?那么你能做的最好的就是:

In[9]:= Maximize[{72 n1 + 14 n2, n1 >= 0, n2 >= 0, 
  32 n1 + 10 n2 == 2566}, {n1, n2}, Integers]

Out[9]= {5714, {n1 -> 78, n2 -> 7}}

这是你想要的吗?

【讨论】:

  • 这就是安德鲁我不想运行 Job1 的事情,直到没有更多积分为止,因为这样做,Job1 将超过最大 XP (2566),我将永远无法执行任何 Job2。我想获得最大可能的 Job2,然后使用适当的计算 finnsh MaxXP 和 Job1,以始终达到最大 XP。我的情况几乎是我需要获得 2566 MaxXP 才能继续完成工作。在牢记这一点的同时,我想将最优先级放在 job2 上,并且只使用 Job1 来完成 MaxXP 到 2566。
  • 我也没有这些功能最大化我正在使用有限运算符的函数式编程语言。我将如何在 Java/PHP/C/C++/.NET/VB 中执行此操作?
  • 据我了解,你是一个非常聪明的人,我希望你能帮助我,因为其他人都是聪明人,我在早上 8 点完成了这个项目,现在是凌晨 3 点我已经整夜没睡,我通常从来没有遇到过数学问题,我以为我能解决这个问题,结果我很笨。在你的 Out[9] = {} 似乎是输出我看到 n1= 78 和 n2 = 7 但我试图获得最大数量的 n2 和最少数量的 n1 我不需要;不需要完全浪费那么多点我只是想让它最有效,它可能会溢出 Max XP 但它不能低于。
【解决方案3】:

a 为 Job 1 的编号,b 为 Job 2 的编号。

XP = 72 a + 14 b
P = 32 a + 10 b

您似乎想要求解ab,这样XP &lt;= 4835P &lt;= 2566b 就尽可能大。

72 a + 14 b <= 4835
32 a + 10 b <= 2566

ba = 0 时最大,即

b <= 4835 ÷ 14, => b <= 345
b <= 2566 ÷ 10, => b <= 256 

由于b必须同时低于345和256,所以必须低于256。

代入:

72 a + 14 × 256 <= 4835, => a <= ( 4835 - 14 × 256 ) ÷ 72, => a <= 17
32 a + 10 × 256 <= 2566, => a <= ( 2566 - 10 × 256 ) ÷ 32, => a <= 0

所以 a = 0,XP 是 2560,使用的点数是 3584。

或者,您可以求解两个不等式的最接近满足

72 a + 14 b <= 4835                (1)
32 a + 10 b <= 2566                (2) 
b <= ( 2566 - 32 a ) ÷ 10          (3) rearrange 2
72 a <= 4835 - 1.4 ( 2566 - 32 a ) (4) subst 3 into 1
27.2 a <= 1242.6
a <= 45.68

所以选择a = 45作为最大整数解,给出b = 112,XP是4808,使用的点数是2560

对于其中任何一个,都不需要计算机编程;如果与这两个工作相关的常数发生变化,那么公式就会发生变化。

对于更难解决的例子,相关的数学领域称为linear programming

【讨论】:

  • 感谢您的解释,但最后您的数学有点短。如果 b=112 和 a=45,我只能得到 4808 XP 而不是必需的 4835 XP。你的代码对我来说有点太疯狂了。另一位告诉我两个未知数的海报 Nicolas Repiquet 提出了 a=46 b=109(可能是地板/天花板)的完美答案,但你仔细地解释了它,我真的很感激我不知道该给谁回答我希望你不会生气,但我更喜欢简短的答案。
猜你喜欢
  • 2018-08-05
  • 1970-01-01
  • 2013-10-10
  • 2012-06-29
  • 2013-01-04
  • 2011-03-09
  • 2016-07-18
  • 2017-02-28
  • 1970-01-01
相关资源
最近更新 更多