Найти наихудший случай, сколько раз выводится "Hello"

86
9

У меня был вопрос на викторине на прошлой неделе, и я не понимаю, как мы должны были его решить. Это вопрос (см. В приложении). Поскольку там вложены циклы, я вижу, откуда исходит n ^ 2, но я не уверен, откуда в ответе идут -n и *.5.

Problem

спросил(а) 2019-04-30T00:21:00+03:00 1 год, 2 месяца назад
1
Решение
86

"Наихудший случай" (если вы можете назвать печать большого количества приветов "наихудшим" случаем...) - это когда А - все нули (например), поэтому все <= оцениваются как истина. Но сколько раз этот цикл выполняется? Это не n ^ 2: Это не n + n + n + nn раз... Посмотрите на внутренний цикл! Это не от 1 до n-1, а от 1 до i. Таким образом, количество распечаток составляет 1+ 2+ 3 +... + (n-1). И это точно n * (n-1)/2, т.е. (N ^ 2-n)/2. Это очень легко доказать (Гаусс сделал это как маленький мальчик :-)), но, поскольку это вопрос с множественным выбором, вы можете просто проверить на одно n.

Если вам интересно, как доказать, что X = 1+ 2+ 3 +... + (n-1) равно n * (n-1)/2, вот трюк Гаусса: напишите X дважды, в разных порядок:

X = 1     +    2  +     3 + ... + (n-1)
X = (n-1) + (n-2) + (n-3) + ... + 1

Теперь подведите итог двух иксов. Обратите внимание, что в каждом столбце есть два числа, суммирующих до n - 1+ (n-1) равно n, 2+ (n-2) равно n и так далее. Таким образом, в основном вся сумма имеет n-1 копий n. Так

2*X = n * (n-1)

Так что X = n * (n-1)/2

Что именно (n ^ 2-n) * 0,5 вы хотели объяснить.

ответил(а) 2019-04-30T00:37:00+03:00 1 год, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема