• Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Ну, на нет, и суда - нет. И на том - спасибо.
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Простите, но к сожалению, я без ИИ не смогу обойтись, да и ИИ не всемогущ, особенно в математических вопросах. Без опытного математика мне и ИИ не поможет.
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Не знаю, я попробовал ваш вариант, программа выдала - ошибку. Попросил ИИ, он предложил сделать - так. Ну ответ то получился - целый.
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019,
    # Функция оценки для уравнения a^3 + b^3 + c^3 = 0
    def fitness(a, b, c):
        if a < 0 or b < 0 or c < 0:
            return float('inf')
        return abs(a**3 + b**3 + c**3)


    Найденное решение: a=0, b=0, c=0
    Значение функции оценки: 0

    Так ничего же не изменилось, было: a=0, b=1, c=-1. Т.е. 1-1=0, так ноль и остался: a=0, b=0, c=0.

    Я хочу проверить формулу a³+b³=c³ с возможностью остановки, у меня нет возможности запустить ее, ну скажем на - месяц.
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Спасибо!!!
    def fitness(a, b, c):
        return abs(a**3 + b**3 + c**3)

    А, что, на что изменить? У меня в коде именно так и было.
    А у Python есть библиотека для Wolfram Alpha и чтобы не нужно было платить? Или может у Wolfram Alpha есть тестовый период? Мало ли, может мне что-то не понравится.
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Спасибо!!! А то меня совесть мучила. Как, это вы, чётки пропустили )? Значит, Эйлеру скоро - станет стыдно.
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Насколько противозаконно, не этично... насколько сильно я получу по шее, и насколько мне должно быть стыдно, если я буду считать с помощью Wolfram Alpha? Считает очень быстро, перебирать нужно лишь две переменные, поэтому и база данных получается маленькая. Я перебираю варианты, например: (-3)^3 + (-3)^3 = c^3 over the integers. Делаю частичные, снимки браузера. Если они отличаются, проверяю еще раз, только те, которые отличаются.

    Опытные люди используют кеширование. То есть часто используемые записи кладут поближе
    к приложению (в память Python) а данные которые редко нужны - вытесняются (evict) из
    памяти.
    Если смогу понять, что вы сказали - отпишусь.
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Может, мне от хранения в базе отказаться? А то у меня так скоро место на диске закончится, да и большая база наверно будет тормозить. Брать из базы только, уже посчитанные кубы, и хранить даты работы программы? Как опытные люди делают остановку, и продолжение работы программы с места остановки, или считают по частям?
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    mayton2019,
    Это - медленная проверка.
    Медленная??? Я и от возведения в степень отказался, беру готовый ответ из базы, и проиндексировал... Очень много новых слов, значит я не на долго пропаду - пойду учиться.
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    Wataru, Я знаю, что - не найду, не убивайте во мне надежду.
    Что за противоположные знаки? Это генетический алгоритм, спрашивайте у mayton2019.


    mayton2019, Ничего сделать нельзя, чтобы исключить противоположные знаки?
    • Найденное решение: a=48, b=-48, c=0
    • Найденное решение: a=75, b=0, c=-75
    • Найденное решение: a=0, b=1, c=-1

    Значение функции оценки: 0
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    Посмотрите, пожалуйста, правильно ли я, с помощью ИИ переписал этот код на Python?
    import random
    
    # Функция оценки для уравнения a^3 + b^3 + c^3 = 0
    def fitness(a, b, c):
        return abs(a**3 + b**3 + c**3)
    
    # Генерация начальной популяции
    def generate_population(size, x_range):
        return [[random.randint(*x_range), random.randint(*x_range), random.randint(*x_range)] for _ in range(size)]
    
    # Скрещивание
    def crossover(x, y):
        z = []
        for i in range(len(x)):
            if random.random() < 0.5:
                z.append(x[i])
            else:
                z.append(y[i])
        return z
    
    # Мутация
    def mutate(x, x_range):
        i = random.randint(0, len(x) - 1)
        x[i] = random.randint(*x_range)
        return x
    
    # Генетический алгоритм
    def genetic_algorithm(fitness, generate_population, crossover, mutate, population_size, x_range, generations):
        population = generate_population(population_size, x_range)
        for _ in range(generations):
            population = sorted(population, key=lambda x: fitness(*x))
            if fitness(*population[0]) == 0:
                break
            next_generation = population[:2]  # Элитизм
            while len(next_generation) < population_size:
                parents = random.sample(population[:10], 2)  # Турнирный отбор
                child = crossover(*parents)
                child = mutate(child, x_range)
                next_generation.append(child)
            population = next_generation
        return population[0]
    
    # Параметры алгоритма
    population_size = 1000
    x_range = (-100, 100)
    generations = 100
    
    # Запуск алгоритма
    solution = genetic_algorithm(fitness, generate_population, crossover, mutate, population_size, x_range, generations)
    print(f"Найденное решение: a={solution[0]}, b={solution[1]}, c={solution[2]}")
    print(f"Значение функции оценки: {fitness(*solution)}")


    Ничего сделать нельзя, чтобы исключить противоположные знаки?
    Написано
  • Поможете сделать код лучше, чем у меня сейчас, a³+b³=c³?

    Koren1
    @Koren1 Автор вопроса
    Everything_is_bad, Лучше, значит любые советы как по улучшению моего кода, так и любые рекомендации других похожих программ. Мне бы хватило URL адреса, где бы я увидел, что досчитали эту формулу ну скажем от -1000000 до 1000000. Если вас не затруднит, задайте наводящие вопросы, чтобы я лучше мог ответить на ваш вопрос.
    Написано
  • Как доказать, что a³+b³+c³=3?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Как скажете. Сейчас поставлю лучшим ответом Wataru, но это будет не справедливо, у меня знаний меньше, чем у участников, и я не имею право делать такой выбор.
    Написано
  • Как доказать, что a³+b³+c³=3?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Есть, что добавить. Я жду, когда придет кто-то из великих и скажет, mayton2019 - прав, перебором лучше не пользоваться, правильно делать так...
    Написано
  • Как доказать, что a³+b³+c³=3?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Мне снова нравится ход ваших мыслей, мне тоже хочется пользоваться не перебором. Подскажите, как делается "семейство решений" по образцу для тройки?
    Написано
  • Как доказать, что a³+b³+c³=3?

    Koren1
    @Koren1 Автор вопроса
    Спасибо вам огромное!!! Избавили меня от мучений.
    Написано
  • Как доказать, что a³+b³+c³=3?

    Koren1
    @Koren1 Автор вопроса
    Wataru, Библиотека SymPy предназначена для решений Диофантовых уравнений, да и Василий Дёмин показал как считать от ноля, не только в плюс, но и в минус, я наверно несколько дней помучаюсь, потом ещё раз спрошу какой код лучше на GitHub или с SymPy?
    for(int a = 0; ; a++) {
      for(int b = 0; ; b++) {
        // вычисления для a и b
        // вычисления для -a и b
       // вычисления для a и -b
      //
      }
    }
    Написано
  • Как доказать, что a³+b³+c³=3?

    Koren1
    @Koren1 Автор вопроса
    Wataru, Не вероятно, как вы всё это нашли? Я тоже на GitHub искал. Какой код лучше с GitHub и тот, что рекомендовал mayton2019?
    Написано
  • Как доказать, что a³+b³+c³=3?

    Koren1
    @Koren1 Автор вопроса
    Wataru, Это не новостной портал, с помощью этого сайта и осуществлялся перебор.
    Написано