我想编写一个 C++ 程序来计算几何数列的前三项。给出了什么: 前三项之和 它们相乘的结果 老实说,我不知道如何开始,因此我们将不胜感激。 我所知道的就是如何在纸上求解这些方程,但编写解决方案比我想象的要难。
我尝试在纸上解决并实施我的思维过程,但这似乎是一个坏主意。
令
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) 设置为等于方程 (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
,确定根的数量和类型。
对于方程(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
的程序必须分析判别式,并相应地提出解决方案。
对于存在的实数解:
a
b
c