беру помощь зала) - страница 2

 
Richie: Впрочем, формула прогрессии примерно очевидна невооруженным взглядом: У = int(8,3069*e^(0,1825*x)+0,5).

Это можно и в анналы. Хорошо.

Только, наверно, не "примерно очевидна" (вот ведь загнул-то!), а "очевидна примерно невооруженным" :)

 

Конечно можно. Шуток совсем народ не понимает. Посмотрю я на вас, когда вы протрезвеете до моего состояния :)

Вот вам ещё одна шутка. Программа работает, но запускать не советую.

Private Sub Command1_Click()
Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Integer
Dim i4 As Integer
Dim i5 As Integer
Dim i6 As Integer
Dim i7 As Integer
Dim i8 As Integer
Dim sum As Long
For i1 = 0 To 30
For i2 = 0 To 30
For i3 = 0 To 30
For i4 = 0 To 30
For i5 = 0 To 30
For i6 = 0 To 30
For i7 = 0 To 30
For i8 = 0 To 30
sum = Chisla(i1) + Chisla(i2) + Chisla(i3) + Chisla(i4) + Chisla(i5) + Chisla(i6) + Chisla(i7) + Chisla(i8)
   If sum = Int(Val(Text1.Text)) Then
   Print i1; i2; i3; i4; i5; i6; i7; i8
   End If
Next i8
Next i7
Next i6
Next i5
Next i4
Next i3
Next i2
Next i1
End Sub


Private Function Chisla(Nomer As Integer)
If Nomer = 0 Then Chisla = 0
If Nomer = 1 Then Chisla = 10
If Nomer = 2 Then Chisla = 12
If Nomer = 3 Then Chisla = 14
If Nomer = 4 Then Chisla = 17
If Nomer = 5 Then Chisla = 21
If Nomer = 6 Then Chisla = 25
If Nomer = 7 Then Chisla = 30
If Nomer = 8 Then Chisla = 36
If Nomer = 9 Then Chisla = 43
If Nomer = 10 Then Chisla = 52
If Nomer = 11 Then Chisla = 62
If Nomer = 12 Then Chisla = 74
If Nomer = 13 Then Chisla = 89
If Nomer = 14 Then Chisla = 107
If Nomer = 15 Then Chisla = 128
If Nomer = 16 Then Chisla = 154
If Nomer = 17 Then Chisla = 185
If Nomer = 18 Then Chisla = 222
If Nomer = 19 Then Chisla = 266
If Nomer = 20 Then Chisla = 319
If Nomer = 21 Then Chisla = 383
If Nomer = 22 Then Chisla = 460
If Nomer = 23 Then Chisla = 552
If Nomer = 24 Then Chisla = 662
If Nomer = 25 Then Chisla = 795
If Nomer = 26 Then Chisla = 954
If Nomer = 27 Then Chisla = 1145
If Nomer = 28 Then Chisla = 1374
If Nomer = 29 Then Chisla = 1648
If Nomer = 30 Then Chisla = 1978
End Function
Киньте на форму кнопку и текстовое поле. В текстовое поле вводите Н.
 
Richie:

Киньте на форму кнопку и текстовое поле. В текстовое поле вводите Н.


И через полчасика получите результат?
 

Можно эксель поиск решений, хотя не уверен что подойдет...

Можно прогу набросать которая сделает перебор вариантов.

Ну и тяжелые математические проги можно подтянуть.


Да здесь нужна прога которая бы выдавала различные варианты значений а,b,c... при одном и том же значении H.

Закономерности скорее в этих числах нет.

Не забывайте что по мимо этих чисел, чему может равняться число а есть еще и b,c,... переменные у которых есть свои значения, а вообще таких переменных 17 ))).

В Excele пробовал но там мозг лопнет от циклических, ранговых функций и т.д. если у кого получится я по завидую ему.

 

Можно сформулировать задачу как оптимизационную:

Дан вектор а=(10, 12, 14, 17, 21, 25, 30, 36, 43, 52, 62, 74, 89, 107, 128, 154, 185, 222, 266, 319, 383, 460, 552, 662, 795, 954, 1145, 1374, 1648, 1978).

Найти второй вектор b, с значениями координат из множества {0,1} (и, разумеется, с тем же числом координат, т.е. 30) - такой, что | a*b - Н | -> min. Произведение векторов - скалярное. На Экселе решается наверняка с помощью ГА (addon "Поиск решений").

Глубокого смысла этой задачи не знаю. Всех вариантов в худшем случае получится 2^30 ~ 10^9, т.е. в принципе для современного писюка задача решаемая.

 
timezero:

Можно эксель поиск решений, хотя не уверен что подойдет...

Можно прогу набросать которая сделает перебор вариантов.

Ну и тяжелые математические проги можно подтянуть.


Да здесь нужна прога которая бы выдавала различные варианты значений а,b,c... при одном и том же значении H.

Закономерности скорее в этих числах нет.

Не забывайте что по мимо этих чисел, чему может равняться число а есть еще и b,c,... переменные у которых есть свои значения, а вообще таких переменных 17 ))).

В Excele пробовал но там мозг лопнет от циклических, ранговых функций и т.д. если у кого получится я по завидую ему.

Глянул, вроде может получиться.

Ну к примеру в а1 будем искать число,

в b1,c1,d1... будут подставляться числа, в b2-b17, c2-c17 нужный диапазон чисел.

в а1 формулу которая будет выбирать число из диапазона по индексу и добавить в ограничения диапазон 2..17

 
И как это описать формулой в excel ?
 
В экселе вы это не посчитаете. Если там 17 групп по 30 значений, вы представляете себе сколько может быть вариантов? Если ответ вам очень нужен - попросите кого-нибудь написать вам прогу на си, ищете очень мощный сервак, запускаете и ждёте. Через пару лет будет вам результат.
 
Richie:

Конечно можно. Шуток совсем народ не понимает. Посмотрю я на вас, когда вы протрезвеете до моего состояния :)

Вот вам ещё одна шутка. Программа работает, но запускать не советую.

Киньте на форму кнопку и текстовое поле. В текстовое поле вводите Н.



Лучше массив объявить с числами и обращаться по индексу, без if, будет намного быстрее работать. Лучше на mq4, он в 10 раз быстрее vb6, еще лучше на mql5 - он еще быстрее.

Chisla[]={10, 12, 14, 17, 21, 25, 30, 36, 43, 52, 62, 74, 89, 107, 128, 154, 185, 222, 266, 319, 383, 460, 552, 662, 795, 954, 1145, 1374, 1648, 1978};

 
Integer:


еще лучше на mql5 - он еще быстрее.

Рассчёт на mql5 можез занять всю сознательную жизнь ТС)

Причина обращения: