количество прохода циклов
От: adept_ Казахстан  
Дата: 24.05.10 08:21
Оценка:
Здравствуйте!

Подскажите пожалуйста, как подсчитать, чему будет равно Т при


for i1 = 1 to a1 do
  for i2 = 1 to a2 do
    for i3 = 1 to a3 do
      ...
      for iN = 1 to aN do
        inc( T );


то есть у меня N вложенных циклов, и a1 <> a2 <> a3 <> an, внутри последнего — inc( T )

есть ли какая-либо формула расчета проходов циклов?

Спасибо
Re: количество прохода циклов
От: deniok Россия  
Дата: 24.05.10 08:26
Оценка:
Здравствуйте, adept_, Вы писали:


_>есть ли какая-либо формула расчета проходов циклов?


Да есть и довольно простая. Попробуй набрать в любой среде исполнения для n=3 и a1=2, a2=3, a3=5 и посмотреть на результат. В качестве среды можно взять бумажку с ручкой
Re: количество прохода циклов
От: Аноним  
Дата: 24.05.10 08:49
Оценка:
А в чём подвох ?
Re[2]: количество прохода циклов
От: Сергей Мухин Россия  
Дата: 24.05.10 09:58
Оценка: :))
Здравствуйте, Аноним, Вы писали:

А>А в чём подвох ?


начальное значение Т неизвестно
---
С уважением,
Сергей Мухин
Re[3]: количество прохода циклов
От: deniok Россия  
Дата: 24.05.10 10:08
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, Аноним, Вы писали:


А>>А в чём подвох ?


СМ>начальное значение Т неизвестно

СМ>

В ленивой семантике это не проблема; ответ будет иметь вид:
inc(inc(inc(...inc(T)...)))

Re: количество прохода циклов
От: adept_ Казахстан  
Дата: 24.05.10 10:38
Оценка:
T = 0
ПРостите, запарился...

конечно же a1*a2*a3...

sorry
Re[2]: количество прохода циклов
От: Сергей Мухин Россия  
Дата: 24.05.10 10:44
Оценка: :)
Здравствуйте, adept_, Вы писали:

_>T = 0

_>ПРостите, запарился...

_>конечно же a1*a2*a3...


неверно.
Если хоть одна aN < 1, то T == 0

наверно надо так:
max(0, a1) * max(0, a2) * max(0, a3) ...
---
С уважением,
Сергей Мухин
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.