Нахождение двух неизвестных в прогрессии перебором - VB
Формулировка задачи:
Здравствуйте!
Как решить уравнение на перебор, надо найти a и b, если по условию:
a*(b^7 – 1) = 233991
Бегло и прикидочно ввёл ограничения, составил программу, ниже.
Ворох проблем...
Как долго мой VB6 будет считать? Может неправильно составил алгоритм? Как оптимизировать? Запустил программу в 10:18 мск, результатов пока никаких. Уже три четверти часа прошло.
Вроде бы считает, а что — неизвестно. Как бы теряем время на неопределённость. Что посоветуете?
Шучу: послали VB6 за пивом… и с концом. Не пива, не VB6.
Помогите, пожалуйста.
VB6 должен найти, угадать: 384*(2,5^7 – 1) = 233991; a = 384 и b = 2,5
Листинг программы
- Option Explicit
- Private Sub Command1_Click()
- Dim a As Long, b As Single, k As Integer
- For a = 300 To 1000
- For b = 1 To 3
- If a * (b ^ 7 - 1) = 233991 Then
- k = k + 1
- Text1 = Text1 & k & ") a=" & a & "; b= " & b & vbCrLf
- End If
- Next
- Next
- End Sub
Решение задачи: «Нахождение двух неизвестных в прогрессии перебором»
textual
Листинг программы
- Option Explicit
- Private Sub Command1_Click()
- Dim a, b, k As Integer
- '...................поставить в свойствах
- 'Text1.MultiLine = True
- 'Text1.ScrollBars = 2
- '.........................................
- Text1.Text = ""
- For a = 350 To 400
- b = (233991 / a + 1) ^ (1 / 7)
- ' For b = 1 To 3
- 'If a * (b ^ 7 - 1) = 233991 Then
- k = k + 1
- Text1.Text = Text1.Text & k & ") a=" & a & "; b= " & b & vbNewLine
- 'End If
- 'Next b
- Next a
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д