在给定它们的和与积的情况下找到几何序列的前三项[关闭]

问题描述 投票:0回答:1

我想编写一个 C++ 程序来计算几何数列的前三项。给出了什么: 前三项之和, r 它们相乘的结果 老实说,我不知道如何开始,因此我们将不胜感激。 我所知道的就是如何在纸上求解这些方程,但编写解决方案比我想象的要困难。假设解必须是真实的。

我尝试在纸上解决并实施我的思维过程,但这似乎是一个坏主意。我得到了关于 q 的二次方程,并且我知道如何从乘积中得到中间项,正如有人提到的那样。我的问题是,我真的不知道像在纸上那样在代码中执行此操作是否有效且正确。

math numerical-methods
1个回答
0
投票

a
b
c
为实数,即几何级数的前三个元素。假设它们都不为 0。否则,“级数”是退化的。

令比率

r
为实数,即连续元素之间的比率。因此,

r = b/a                        (1)
r = c/b                        (2)

求解

a
c
的方程 (1) 和 (2) 得出:

a = b/r                        (3)
c = br                         (4)

给定乘积

p
,方程(3)和(4)让我们可以直接找到
b

p = abc = (b/r)(b)(br)
p = bbb = b³
b = p¹ᐟ³                       (5)

因此,

b
是乘积的立方根。

[注: 此答案中仅使用了两个小数指数:1/3 和 2/3。如果微小的 Unicode 指数难以阅读,您可能需要放大。]

将方程 (1) 设置为等于方程 (2),可得出

c
的另一个方程:

b/a = c/b
bb = ac
b² = ac
c = b²/a
c = (p¹ᐟ³)²/a
c = p²ᐟ³/a                     (6)

转向总和

s
,我们有:

s = a + b + c
s = a + (p¹ᐟ³) + (p²ᐟ³/a)

两边同时乘以

a
,然后两边减去
as
,得到:

as = aa + a(p¹ᐟ³) + a(p²ᐟ³/a)
sa = a² + (p¹ᐟ³)a + p²ᐟ³
0 = a² + (p¹ᐟ³)a - sa + p²ᐟ³
0 = a² + (p¹ᐟ³-s)a + p²ᐟ³       (7)

方程(7)可以通过熟悉的二次公式来求解。对于二次方程

0 = Ax² + Bx + C
,其中使用大写字母与上面的小写字母进行区分,我们可以将方程(7)映射如下:

  • A
    1
  • B
    p¹ᐟ³-s
  • C
    p²ᐟ³
  • x
    a

判别式,

B² - 4AC
,确定根的数量和类型。

  • — 有两个不同的实数根
  • zero – 有一个实数根。这有时称为双根
  • – 两个根是复共轭。

对于方程(7),我们有

B² = (p¹ᐟ³-s)²
B² = (p¹ᐟ³)² + 2(p¹ᐟ³)(-s) +(-s)²
B² = p²ᐟ³ - 2s(p¹ᐟ³) + s²

4AC = 4(1)(p²ᐟ³)
4AC = 4p²ᐟ³

B² - 4AC = p²ᐟ³ - 2s(p¹ᐟ³) + s² - 4p²ᐟ³
B² - 4AC = -3p²ᐟ³ - 2s(p¹ᐟ³) + s²
B² - 4AC = s² - 2(p¹ᐟ³)s - 3p²ᐟ³
B² - 4AC = (s + p¹ᐟ³)(s - 3p¹ᐟ³)

设计用于查找该问题的几何级数

a
b
c
的程序必须分析判别式,并相应地提出解决方案。

对于存在的实数解:

  • 解方程(7)即可确定
    a
  • 的值
  • 方程(5)给出
    b
  • 方程(6)给出
    c
© www.soinside.com 2019 - 2024. All rights reserved.