0
1

С помощью отображённого на катринке кода можно вывести все точные степени (не превосходящие данного числа), но только с конкретным показателем, введённым пользователем. А как вывести все точные степени вообще? Допустим, я хочу вывести все точные степени, не превосходящие числа 310610407. Как это сделать?

alt text

задан 16 Окт '21 10:44

@Роман83, там регистрироваться надо.

(16 Окт '21 11:02) Казвертеночка
1

@Казвертеночка: для начала надо найти такое минимальное d, для которого 2^{d+1} > N, где N -- заданное большое число. После чего в цикле выписать квадраты, кубы, ... , d-е степени. То, что получилось, далее можно упорядочить.

(16 Окт '21 11:56) falcao

а что мешает сделать цикл по показателям?

(16 Окт '21 11:56) haosfortum
1

до корня из к

(16 Окт '21 12:01) mihailm

@haosfortum, сделать цикл по показателям мешает то, что степени будут выведены беспорядочно. Например, если выводить сначала квадраты, а потом кубы, что число 8 будет выведено после 9. Ну а уж единица, так та вообще будет выведена более одного раза.

(16 Окт '21 12:01) Казвертеночка

@falcao, а как упорядочивать? Я в Питоне только первые шаги делаю.

(16 Окт '21 12:12) Казвертеночка
1

@Казвертеночка: это задача уже не столько по программированию, сколько по математике. Алгоритмов сортировки имеется целая куча. Среди них есть относительно быстрые, а есть более медленные, но их проще запрограммировать. Например, можно рассмотреть сортировку "пузырьками".

Есть ещё простой рекурсивный алгоритм. Делим массив примерно пополам, сортируем половины. Потом используем подпрограмму слияния двух отсортированных массивов -- она лёгкая.

(16 Окт '21 12:48) falcao

@falcao, спасибо, я как раз в эти минуты уже и пытаюсь довести всю эту квеппетенель до ума. Как только получится, так сразу опубликую здесь.

(16 Окт '21 12:51) Казвертеночка

@falcao, кажется, работает! Катринка с кодом внизу, в ответе.

(16 Окт '21 13:21) Казвертеночка
показано 5 из 10 показать еще 5
10|600 символов нужно символов осталось
0

@falcao, кажется, работает!

alt text

ссылка

отвечен 16 Окт '21 13:03

1

Вообще говоря, сортировать множество -- довольно странно, в множество же по определению неупорядоченно. Странно, что функцию sorted можно применить к множеству. Хотя, возможно, в таком случае она возвращает список.

(16 Окт '21 16:41) haosfortum

@haosfortum, к тому же у меня авнакод получился, ибо при вводе числа, меньшего 4, всё летит к бениной маме даже не начавшись 😭😭😭

(16 Окт '21 16:44) Казвертеночка
1

@Казвертеночка, если ввести k=3, то d=1, и у вас цикл for будет in range(2,2), то есть 0 итераций.

(16 Окт '21 16:47) haosfortum
1

@haosfortum: сортировать можно массив, такое иногда бывает нужно, то есть повтор чисел -- вещь вполне обычная. Как это называется во встроенной процедуре или на уровне идентификаторов, уже не так важно.

@Казвертеночка: если можно пользоваться встроенными библиотечными функциями, то проблемы вообще нет. И можно было также брать упорядоченный список, и новый элемент вставлять при помощи половинного деления.

(16 Окт '21 18:33) falcao
1

@falcao, дело не в этом. Вызов set(list) превращает список в множество, то есть убирает повторы и делает порядок элементов не важным. А к этому множеству уже применяется функция sorted. То есть, она, видимо, строит список из множества.

(16 Окт '21 20:19) haosfortum
1

@haosfortum: так это уже вопрос о синтаксисе языка. Я с деталями совершенно не знаком. Но если есть встроенная функция, про которую можно сказать, что она сортирует элементы множества, то я здесь никакого противоречия не вижу. Ведь множество программно представляется массивом -- его и сортируем. Причём эта операция даже математически корректна, так как если одно и то же множество по-разному задать в виде списка, результат от этого не поменяется. Даже в математической статье можно сказать что-то типа "расположим элементы множества в порядке возрастания", если оно состоит из чисел.

(16 Окт '21 20:33) falcao

@falcao, а, ну да, теорему Цермело никто не отменял

(17 Окт '21 19:37) haosfortum
1

@haosfortum: Вы про что? Здесь же только конечные объекты рассматриваются. Там всё доказывается по индукции, то есть в рамках теории множеств без AC, которой теорема Цермело эквивалентна.

(17 Окт '21 21:33) falcao

@falcao, ну, это не отменяет того, что она справедлива и для конечных множеств (пусть это и очевидно). Моя реплика была комментарием к тому, что "эта операция математически корректна".

(17 Окт '21 21:55) haosfortum
1

@haosfortum: я всё равно не вижу смысла в обосновании, использующем аксиому выбора. Здесь ведь даже аксиома счётного выбора не нужна.

(17 Окт '21 22:28) falcao
показано 5 из 10 показать еще 5
10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×10
×8
×3
×2
×1

задан
16 Окт '21 10:44

показан
524 раза

обновлен
17 Окт '21 22:28

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru