Задать вопрос
  • Как правильно задать интервал для формулы a³+b³=c³+1?

    Koren1
    @Koren1 Автор вопроса
    mayton2019,
    Ферштейн?
    Страшно сказать что не verstehen. Обычно когда часто говоришь, что глупс, у собеседника начинается агрессия. По этому не признаюсь.

    наискосок
    Из вариантов: вдоль, в поперек, по диагонали или по частям, я предпочитаю даже не нож, а мясорубку, т.е. по частям.
  • Как правильно задать интервал для формулы a³+b³=c³+1?

    Koren1
    @Koren1 Автор вопроса
    Wataru,
    Ничего вы не срезали. А всего-лишь чуть-чуть поменяли порядок перебора все тех же пар чисел, сильно усложнив код
    Перепишите, пожалуйста код, как будет лучше. Как по мне вы говорите загадками и скорей всего я ответ на загадку не найду.

    mayton2019,
    Почитай вообще литературу как тестируется ПО. Краевые тесты. Property-based testing
    Спасибо.

    Ты пишешь в принципе получилось. А как ты докажешь что учел ВСЕ сочетания целых чисел?
    Я же сделал 40 циклов, раньше была недостача после маленьких циклов, теперь ее нет:
    6³+8³=9³-1 | 216+512=729-1 | 1 1001 1 1001
    8³+6³=9³-1 | 512+216=729-1 | 1 1001 1 1001
    71³+138³=144³-1 | 357911+2628072=2985984-1 | 1 1001 1 1001
    135³+138³=172³-1 | 2460375+2628072=5088448-1 | 1 1001 1 1001
    138³+71³=144³-1 | 2628072+357911=2985984-1 | 1 1001 1 1001
    138³+135³=172³-1 | 2628072+2460375=5088448-1 | 1 1001 1 1001
    242³+720³=729³-1 | 14172488+373248000=387420489-1 | 1 1001 1 1001
    372³+426³=505³-1 | 51478848+77308776=128787625-1 | 1 1001 1 1001
    426³+372³=505³-1 | 77308776+51478848=128787625-1 | 1 1001 1 1001
    426³+486³=577³-1 | 77308776+114791256=192100033-1 | 1 1001 1 1001
    486³+426³=577³-1 | 114791256+77308776=192100033-1 | 1 1001 1 1001
    566³+823³=904³-1 | 181321496+557441767=738763264-1 | 1 1001 1 1001
    720³+242³=729³-1 | 373248000+14172488=387420489-1 | 1 1001 1 1001
    791³+812³=1010³-1 | 494913671+535387328=1030301000-1 | 1 1001 1 1001
    812³+791³=1010³-1 | 535387328+494913671=1030301000-1 | 1 1001 1 1001
    823³+566³=904³-1 | 557441767+181321496=738763264-1 | 1 1001 1 1001
    236³+1207³=1210³-1 | 13144256+1758416743=1771561000-1 | 1 1001 1001 2001
    575³+2292³=2304³-1 | 190109375+12040481088=12230590464-1 | 1 1001 2001 3001
    1207³+236³=1210³-1 | 1758416743+13144256=1771561000-1 | 1001 2001 1 1001
    1938³+2820³=3097³-1 | 7278825672+22425768000=29704593673-1 | 1001 2001 2001 3001
    1124³+5610³=5625³-1 | 1420034624+176558481000=177978515625-1 | 1001 2001 5001 6001
    1943³+6702³=6756³-1 | 7335308807+301032420408=308367729216-1 | 1001 2001 6001 7001
    1851³+8675³=8703³-1 | 6341898051+652842546875=659184444927-1 | 1001 2001 8001 9001
    1943³+11646³=11664³-1 | 7335308807+1579539014136=1586874322944-1 | 1001 2001 11001 12001
    2292³+575³=2304³-1 | 12040481088+190109375=12230590464-1 | 2001 3001 1 1001
    2820³+1938³=3097³-1 | 22425768000+7278825672=29704593673-1 | 2001 3001 1001 2001
    2676³+3230³=3753³-1 | 19162771776+33698267000=52861038777-1 | 2001 3001 3001 4001
    2196³+5984³=6081³-1 | 10590025536+214276603904=224866629441-1 | 2001 3001 5001 6001
    3230³+2676³=3753³-1 | 33698267000+19162771776=52861038777-1 | 3001 4001 2001 3001
    3318³+16806³=16849³-1 | 36528273432+4746714134616=4783242408049-1 | 3001 4001 16001 17001
    5610³+1124³=5625³-1 | 176558481000+1420034624=177978515625-1 | 5001 6001 1001 2001
    5984³+2196³=6081³-1 | 214276603904+10590025536=224866629441-1 | 5001 6001 2001 3001
    6702³+1943³=6756³-1 | 301032420408+7335308807=308367729216-1 | 6001 7001 1001 2001
    7676³+11903³=12884³-1 | 452277411776+1686433811327=2138711223104-1 | 7001 8001 11001 12001
    8675³+1851³=8703³-1 | 652842546875+6341898051=659184444927-1 | 8001 9001 1001 2001
    10866³+17328³=18649³-1 | 1282948141896+5202898071552=6485846213449-1 | 10001 11001 17001 18001
    11646³+1943³=11664³-1 | 1579539014136+7335308807=1586874322944-1 | 11001 12001 1001 2001
    11903³+7676³=12884³-1 | 1686433811327+452277411776=2138711223104-1 | 11001 12001 7001 8001
    16806³+3318³=16849³-1 | 4746714134616+36528273432=4783242408049-1 | 16001 17001 3001 4001
    17328³+10866³=18649³-1 | 5202898071552+1282948141896=6485846213449-1 | 17001 18001 10001 11001
  • Как правильно задать интервал для формулы a³+b³=c³+1?

    Koren1
    @Koren1 Автор вопроса
    mayton2019,
    я ума не приложу какие запросы тебе там
    нужны и почему ты просто не мог поискать это в тексте

    Да, я тоже ума не приложу, может в будущем понадобится, ну скажем захочется убрать повторы или нарисовать график. Ну не знаю, это же данные, а не художественная литература.

    Сделай один Range полным-полным перебором. Потом внеси оптимизацию

    Лучше 1 раз увидеть, чем 100 раз услышать. Пока что я вас не понимаю. Обычно это происходит так, к примеру с Bing AI. Он 100 раз пытается объяснить, я 100 раз не понимаю. Потом терпение заканчивается, он уходит в цикл, повторяет одно и тоже. Я ему говорю, чтобы он не издевался, что мне больно. Он обижается, и получается, что я еще и виноват.

    Здесь срезать углы не получиться

    В принципе получилось же с помощью itertools.product. Теперь вопрос в другом - сделать лучше.
  • Как правильно задать интервал для формулы a³+b³=c³+1?

    Koren1
    @Koren1 Автор вопроса
    mayton2019,
    Долгоиграющие джобы можно разбить на итерации. Или пачки. В данном случае пачкой будут Ranges.

    Я так и делаю, а как вы разбиваете?

    И выбрать такой интервал чтоб не сильно долго работала пачка (5 минут) и в тоже время чтоб можно было оперативно прервать без жалости.

    Я так и планирую, когда программа будет дописана, буду экспериментировать с размером интервала.

    И завести табличку ranges. Пачка троек отработала - закоммитил.

    Табличка уже есть.

    При следующем запуске мы начинаем не с начала а со следующей пачки.

    У меня так и есть, пока что только для формулы a³+b³=c³-1.

    Честно я-бы для этой задачи базами не парился. Тут хвататет CSV файлов.

    В чем преимущество? CSV - это Microsoft Excel или LibreOffice Calc, а это значит, что нужно долго ждать, когда ну скажем LibreOffice Calc откроется, чтобы посмотреть на табличку, плюс CSV еще и конвертировать нужно, т.е. плюс еще какое-то время. DB Browser for SQLite открывается быстрее. LibreOffice Calc любит округлять, не приятно будет.

    Приведенный вами код непонятно зачем интервалы использует. С тем же успехом можно гнать просто 2 цикла от 1 до 20000 для a и b.
    Мне же нужно было попробовать один большой интервал и много маленьких, чтобы увидеть потери.

    mayton2019, Wataru, Можете переписать программу, так, как будет правильно, а не так, как у меня?
  • Как правильно задать интервал для формулы a³+b³=c³+1?

    Koren1
    @Koren1 Автор вопроса
    Wataru, Спасибо!!! Попросил искусственный интеллект Bing AI сделать правильные интервалы для формулы a³+b³=c³+1. Не получилось, наверно потому, что нужно интервал начинать с двойки. А с двойки начинать приходится, потому что любое число плюс 1 равно любому числу плюс один. Тогда пришлось попросить написать программу для a³+b³=c³-1. В принципе у меня уже все получается, но если будут предложения, я буду очень рад их услышать.
    # Это программа на Python
    import itertools
    
    n= 3
    
    # Задаем интервалы значений для a,b,c
    intervals = [(1 + i * 1000, 1001 + i * 1000) for i in range(20)]
    
    # Создаем все возможные комбинации интервалов для a и b
    interval_pairs = itertools.product(intervals, repeat=2)
    # Для каждой пары интервалов
    for (a_begin, a_end), (b_begin, b_end) in interval_pairs:
        # Для каждого значения a в интервале
        for a in range(a_begin, a_end+1):
            an = a ** n
            c = a; cn = an
            # Для каждого значения b в интервале
            for b in range(b_begin, b_end+1):
                anbn = an + b ** n
                while anbn > cn:
                    c += 1
                    cn = (c ** n)-1
                if anbn == cn: # Bingo!
                    print(f'{a}³+{b}³={c}³-1 | {a**3}+{b**3}={c**3}-1 | {a_begin} {a_end} {b_begin} {b_end}')
  • Как правильно задать интервал для формулы a³+b³=c³+1?

    Koren1
    @Koren1 Автор вопроса
    Alexandroppolus, Значит не буду просить компьютер про слишком большой цикл, подожду когда досчитает и перезагружу. Странно, у меня такое ощущение, что кроме меня на компьютере никто формулы не считает. Как вы задаете интервал, когда считаете формулы на компьютере?
  • Как правильно задать интервал для формулы a³+b³=c³+1?

    Koren1
    @Koren1 Автор вопроса
    Alexandroppolus, После обновления операционной системы рекомендуется перезагружать, что тут поделаешь? Не хотел весь код программы показывать, опасаюсь, что это не всем понравится, но наверно лучше показать. Я храню результаты в базе, вот полный код программы:
    # Это программа на Python
    # Импортируем модуль sqlite3
    import sqlite3
    
    # Подключение к базе данных SQLite
    conn = sqlite3.connect('solutions1.db')
    
    # Создаем таблицу solutions в базе данных
    cur = conn.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS solutions (a INT, b INT, c INT, a_cube INT, b_cube INT, c_cube INT, begin INT, end INT)")
    
    n= 3
    
    # Задаем интервалы значений для a,b,c
    intervals = [(2, 20001)]
    #intervals = [(2, 1001), (1000, 2001), (2000, 3001), (3000, 4001), (4000, 5001), (5000, 6001), (6000, 7001), (7000, 8001), (8000, 9001), (9000, 10001), (10000, 11001), (11000, 12001), (12000, 13001), (13000, 14001), (14000, 15001), (15000, 16001), (16000, 17001), (17000, 18001), (18000, 19001), (19000, 20001)]
    
    # Перебираем значения из списка intervals и для каждого интервала генерируем значения a,b,c такие,
    # что a³+b³=c³+1. Если такие значения найдены, то они выводятся на экран и записываются в таблицу solutions.
    for Begin, End in intervals:
        for a in range(Begin, End+1):
            an= a ** n
            c= a; cn= an
            for b in range(a+1, End+1):
                anbn= an + b ** n
                while anbn > cn:
                    c+= 1
                    cn= (c ** n)+1
                if anbn == cn: # Bingo!
                    print(f'{a}³+{b}³={c}³+1 | {a**3}+{b**3}={c**3}+1 | {Begin} {End}')
    
                    # Записываем решение и пределы в таблицу solutions
                    cur.execute("INSERT INTO solutions VALUES (?, ?, ?, ?, ?, ?, ?, ?)", (a, b, c, a**3, b**3, c**3, Begin, End))
    
    # Сохраняем изменения в базе данных
    conn.commit()
    
    # Закрываем соединение с базой данных SQLite
    conn.close()
  • Как правильно задать интервал для формулы a³+b³=c³+1?

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

    Koren1
    @Koren1 Автор вопроса
    Я думаю, вам стоит вообще внешний цикл убрать и всегда работать только с одним интервалом.
    А если я захочу перезагрузить компьютер, а интервал ещё не досчитался?

    Можно чуть чуть ускорить решение, если не увеличивать c в цикле, а вычислить его по формуле (an+bn-1)^(1/n)
    Спасибо, попробую, надеюсь получиться. Вначале хочу разобраться с интервалом.

    Какая-нибудь функция pow вам поможет
    Я экспериментировал с pow и math.pow, оказалось, что ** работает быстрее.

    не из заданного интервала
    Да, я знаю, можете переписать мою программу для создания интервала, а то для меня это сложно. Всего одну строчку:
    intervals = [(10000 + i * 1000, 11001 + i * 1000) for i in range(10)]
    print(intervals)
  • Какое решение уравнения x^3 + y^3 = z^3 в дробных числах?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Нет, мне и сформулировать то его не под силу для полноценного вопроса. Да и устал я от математики, сложно это для меня, пару дней пытался напряженно думать, а ощущение, что мешки с цементом таскал - отдохну немного. Очень много неизвестных для меня слов, не понимать - стыдно. Хватит мне и того что есть, позвольте еще раз сказать - СПАСИБО!!!
  • Какое решение уравнения x^3 + y^3 = z^3 в дробных числах?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Спасибо!!! На GitHub забрал, авторство указал.
    Можете убрать randomность? У меня не получается, интеллект отказывается, у i/20 большой зазор. Можете вычислить кубический корень из вещественного числа методом половинного деления или Ньютона?
  • Какое решение уравнения x^3 + y^3 = z^3 в дробных числах?

    Koren1
    @Koren1 Автор вопроса
    mayton2019,
    Хотя кубический корень из вещественного числа можно вычислить методом половинного деления или ньютона.
    Нет, я не справлюсь с домашним заданием. Давайте подождем, мало ли, может кто-то придет и решит.
  • Какое решение уравнения x^3 + y^3 = z^3 в дробных числах?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, В поиске написал "википедия логарифм и экспонента формулы возведения числа x в вещественную степень y" Google пишет: Результатов: примерно 884. Мне какой именно выбрать?
  • Какое решение уравнения x^3 + y^3 = z^3 в дробных числах?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Нет, но очень понравилась. У нее есть название? Хочется про нее больше узнать.
  • Как делить куб пополам?

    Koren1
    @Koren1 Автор вопроса
    Модератор, Мне тоже этого хочется, подскажите, где я могу читать новости про куб, Диафанта и Ферму?
  • Какое решение уравнения x^3 + y^3 = z^3 в дробных числах?

    Koren1
    @Koren1 Автор вопроса
    mayton2019, Вы позволите ваш код разместить у себя на GitHub?
  • Как делить куб пополам?

    Koren1
    @Koren1 Автор вопроса
    Модератор, Что нужно поменять?
  • Как делить куб пополам?

    Koren1
    @Koren1 Автор вопроса
    Lynn «Кофеман», Мне не хочется прям сейчас искать смысл жизни. Да во многом нет смысла и в той же теореме Ферма ровно столько же смысла, т.е. ответа найти никому не удалось. Люди живут не по принципу - есть смысл или нет, а по логике - хочется или не хочется, нравится или не нравится. Про интеллект у меня уже спрашивал CBET_TbMbI.