Обозначение формулы Big O - P * R в квадрате

Я хочу вычислить нотацию Big O для площади круга. Интересно, какова временная сложность Pi * r ^ 2? это O (n) или O (n ^ 2)? Также проверьте правильность моих действий.

 Algorithm
   Step 1: Start //  f(n)=O(1)  ( Executes 1 time)
   Step 2: Get an integer input from user for AREA and RADIUS//. f(n)=O(n)=O(1) ( Executes 1 time)
   Step 3: Print the statement "Enter the Radius of Circle: //f(n)=O(n)=O(1) ( Executes 1 time)
    Step 4: Calculate the area of the circle using the formula of  
    //f(n)=O(n)=?
    (r - Radius) //f(n)=O(n)=O(1) ( Executes 1 time)
    
   Step 5: Print the statement "Area of Circle:" //f(n)=O(n)=O(1) ( Executes 1 time)
    
   Step 6: Print Area//f(n)=O(n)=O(1) ( Executes 1 time)
    
   Step 7: Stop //f(n)=O(n)=O(1) ( Executes 1 time)
    
    f(n)=O(n)=?

Большой О? ты имеешь в виду площадь? так как это то, что ваш расчет должен дать в результате. Или вы имеете в виду Big O = окружность?

Solar Mike 07.11.2022 08:29

я отредактировал вопрос. Извините за опечатку. Это должно быть большое обозначение O. Я не понимаю, должна ли большая нотация O для формулы быть pi * r ^ 2, это O (n) или O (n ^ 2)?

Habeeb E Sadeed 07.11.2022 08:32

это ни то, ни другое: это O (1): сложность постоянна независимо от размера r

Mitch Wheat 07.11.2022 08:33

«Пожалуйста, также [...]» - существует ограничение на один вопрос на вопрос (и открытые вопросы «это правильно» здесь не по теме).

JaMiT 07.11.2022 08:45

Спасибо, что сообщили мне, я удалил свой предыдущий комментарий.

Habeeb E Sadeed 07.11.2022 08:57
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это зависит от вашей модели вычислений. Для большинства практических целей это O(1), потому что время выполнения не зависит от вашего ввода r. Это неявно предполагает, что ваш ввод ограничен, например, вписывается в 32-битное целое число.

Более теоретически вы можете думать о произвольном большом r. Тогда N в большой нотации O обычно представляет собой длину (количество битов) r, а не размер числа. Здесь вы не можете предположить, что вы можете умножить любые два числа в O(1), но это будет зависеть от длины чисел.

В этом случае вы получите O(N^2) с наивным алгоритмом умножения, который можно улучшить до O(N log N) с помощью более продвинутых методов. См. https://en.wikipedia.org/wiki/Multiplication_algorithm#Computational_complexity_of_multiplication.

Другие вопросы по теме