Вот мое решение р = B^EКакова была бы сложность p = B^E?
p,b,e:= 1,B,E
WHILE e!=0 DO
IF e is EVEN THEN
b:= b^2
e:= e/2
ELSE
p:= p*b
e:= e-1
FI
OD.
Сейчас, на мой взгляд, цикл выполняется E раз и сложность журнала п. Я прав?
Вот как я бы объяснить сложность:
Пояснение: В худшем случае цикл будет выполняться раз E, но для каждого четного числа встречаются, е уменьшается вдвое 2, исключая фактор элементов из расчета , следовательно, размер вычисления не будет расти экспоненциально, когда размер ввода будет расти. Поэтому сложность алгоритма O (log (E)).
Пример: положим E = 10 Тогда мы будем иметь шаги расчета, как показано ниже: 1. б: = Ь^2 и е = 10/2 = 5 2. р = р * (Ь^2) и e = 5-1 = 4 3. b = b^4 и e = 4/2 = 2 3. b = b^8 и e = 1 4. p = p * b^10 и e = 0
Давайте увеличим е до 100. Тогда мы будем иметь:
- б: = Ь^2 и е = 100/2 = 50
- Ь: = Ь 4 и е = 25
- р: = р * Ь 4 и е = 24
- Ь: = Ь^8 и е = 12
- Ь: = Ь^16 и е = 6
- Ь: = Ь^32 и е = 3
- р: = р * Ь^36 и е = 2
- Ь: = Ь * Ь^32 и е = 1
- б: = p * b^34 и e = 0 Отсюда видно, что увеличение размера E от 10 до 100, которое в десять раз не увеличивает число итераций только на 5. Следовательно, оказывается, что сложность O (log E)
Я подозреваю, что это относится к https://cs.stackexchange.com/. Кроме того, я не уверен, что на самом деле спрашивает, потому что я не знаю, что такое «B^E». Это может быть моя неудача, как тот, кто не изучил много теории сложности, или может быть, что проблема недостаточно объяснена. –