Math 是否可以表示';平均值';在编程方面?

Math 是否可以表示';平均值';在编程方面?,math,average,Math,Average,我很难想出一个合适的标题,但我只是想编写一些可以自动计算以下简单数学问题的代码: a,b,c的平均值是25。b,c的平均值是23。“a”的值是多少 对于我们人类来说,我们可以很容易地计算出‘a’的值是29,而不需要知道b和c。但我不确定这在编程中是否可行,在编程中我们编写一个函数,该函数接受“a,b,c”和“b,c”的平均值,并自动输出“a”。是的,这是可能的。这样做的原因是,您可以将这里描述的这类问题建模为一个线性方程组。例如,当你说a,b和c的平均值是25,那么你是说 a/3+b/3+c/3

我很难想出一个合适的标题,但我只是想编写一些可以自动计算以下简单数学问题的代码:

a,b,c的平均值是25。b,c的平均值是23。“a”的值是多少


对于我们人类来说,我们可以很容易地计算出‘a’的值是29,而不需要知道b和c。但我不确定这在编程中是否可行,在编程中我们编写一个函数,该函数接受“a,b,c”和“b,c”的平均值,并自动输出“a”。

是的,这是可能的。这样做的原因是,您可以将这里描述的这类问题建模为一个线性方程组。例如,当你说a,b和c的平均值是25,那么你是说

a/3+b/3+c/3=25

加上b和c的平均值为23的约束,得到了方程

b/2+c/2=23

更一般地,形式为“变量x1,x2,…,xn的平均值为M”的任何约束可以写成

x1/n+x2/n+…+xn/n=M

一旦你把所有这些约束都写出来,求解一个特定变量的值——或者确定存在许多解——就简化为求解一个线性方程组。有许多技术可以做到这一点,其中高斯消去法和反向传播是一种特别常见的方法(尽管通常您只需将其交给MATLAB或线性代数软件包,让它为您完成工作)


一般来说,无法保证给定一组方程,计算机可以确定它们是否有解或推断变量的值,但这恰好是一种很好的情况,在这种情况下,约束的形状使问题符合精确解。

是的,这是可能的。这样做的原因是,您可以将这里描述的这类问题建模为一个线性方程组。例如,当你说a,b和c的平均值是25,那么你是说

a/3+b/3+c/3=25

加上b和c的平均值为23的约束,得到了方程

b/2+c/2=23

更一般地,形式为“变量x1,x2,…,xn的平均值为M”的任何约束可以写成

x1/n+x2/n+…+xn/n=M

一旦你把所有这些约束都写出来,求解一个特定变量的值——或者确定存在许多解——就简化为求解一个线性方程组。有许多技术可以做到这一点,其中高斯消去法和反向传播是一种特别常见的方法(尽管通常您只需将其交给MATLAB或线性代数软件包,让它为您完成工作)


一般来说,不能保证给定一组方程,计算机可以确定它们是否有解或推断变量的值,但这恰好是一种很好的情况,在这种情况下,约束的形状使问题易于精确解。

好的,我已经解决了一些问题。要直接按照标题回答问题,可以在编程中表示平均值。1可能的方法是创建一个地图数据结构列表,该列表将集合存储为
(如“a、b、c”),而集合的平均值将为
(如25)

提取键并用逗号拆分其字符串,存储到列表中,然后将平均值乘以列表的大小,得到总数(例如25x3和23x2)。这样,就不会丢失任何语义信息

至于我问这个问题的背景,对这个问题更恰当的描述是“给定一组不同变量组合的平均值,是否有可能找到每个变量的值?”答案是开放的。我无法理解,但下面是一个试图描述逻辑流程的尝试,如果要对其进行编码:

将列表(第2段中的列表)在所有可能的组合中相互匹配,以检查一个列表是否包含另一个列表中的所有元素。如果是,则减去列表(如abc bc)和值(如75-46)。如果在进行减法运算时,集合中只有1个变量,那么我们已经找到了该变量的值

如果还有1个以上的变量,如abcd-bc=ad,则将这些值存储为map数据结构并重复该过程,直到所有可能的组合的完整迭代中的减法计数为0为止(例如ac不能减法bc)。不幸的是,这不是它的终点

通过组合列表(例如ac+bd=abcd)可以找到进一步的解决方案,以获得在答案处进行减法和推导的更多可能方法。在这种情况下,你只是不知道什么时候停止尝试,组合列表将呈指数级增长。也许有人与强大的相关数学理论可以证明,在一定数量的迭代后,进一步的加法是无用的,因此应该停止。见鬼,甚至可能负值也有帮助,因此与我之前所说的“ac”不能减去“bd”(得到a,c,-b,-d)相矛盾。这将提供更多的计算组合


有较强计算科学基础的人可以尝试templatetypedef的建议。

好吧,我已经想出了一些办法。要直接按照标题回答问题,可以在编程中表示平均值。1可能的方法是创建一个地图数据结构列表,该列表将集合存储为
(如“a、b、c”),而集合的平均值将为
(如25)

提取键并用逗号拆分其字符串,存储到列表中,然后将平均值乘以列表的大小