Loading...
Lusien.GG avatar Lusien.GG 66 Точки

Unsolved Math Problem, a^n+b^n=c^n

            Начинаещ съм. 100% съм обеден,че някой на планетата Земя го е пробвал с 1000х по-силен компютър и 1000х по смислен код, но реших да си разнообразя часовете около 3:00-4:00 сутринта и да търся неоткритите от математиците над 300 години числа, изпълняващи уравнението в заглавието(като изключим питагоровите числа).

   

using System;
namespace unsolvedMath
{
    class Problem
    {
        static void Main()
        {

            var length = int.Parse(Console.ReadLine());
            long a;
            long b;
            long c;
            long n;
            for (int i = 1; i <= length; i++)
            {
                c=i;
                for (int o = 1; o <= length; o++)
                {
                    b=o;

                    for (int j = 1; j <= length; j++)
                    {
                        a=j;
                        for (int z = 1; z <= length; z++)
                        {
                            n = z;
                            if (Math.Pow(a, n) + Math.Pow(b, n) == Math.Pow(c, n))
                            {
                                Console.WriteLine("a={0},b={1},c={2},n={3}", a, b, c, n);
                                Console.WriteLine("{0}^{1}+{2}^{1}={3}^{1}", a, n, b, c);
                            }
                        }
                    }
                }
            }
        }
    }
}

Инпута е просто за да пробвам, постепенно с по-големи и по големи числа и да следя какво се случва...

програмката естествено открива всички комбинации при n=1 и  питагоровите числа при n=2, но при по големите стойности започна да се дави. Започна да твърди,че 3^20+20^20=20^20 и още доста такива примери... искам просто да разбера защо се случва това...като цяло безмислено е всичко това, но на мен просто ми е любопитно, защо започва да смята грешно.
Благодаря за отделеното време. :)

 

Тагове:
0
Общи приказки
RoYaL avatar RoYaL Trainer 6849 Точки

Най-вероятно се препълват типовете данни и превъртат.

3
Lusien.GG avatar Lusien.GG 66 Точки

Благодаря smiley

0
dim4o avatar dim4o 288 Точки

Само една забележка: Проблема, за който говориш е решен преди сигурно повече от 10 години. Доказана е доста по-обща хипотеза, която на пръв поглед няма нищо общо с твърдението, но се оказва, че то е частен случай на въпросната хипотеза. 

1
Lusien.GG avatar Lusien.GG 66 Точки

Няма как да мине без забележки. laugh  все пак не знаех и си запълних времето в ранната сутрин. Благодаря за поправката.

0
dim4o avatar dim4o 288 Точки

Според мен не е много инересно, когато знаеш, че в най-добрия случай няма резултат, а иначе излиза грешен резултат. Би била по-забавна програмка, която да се опитва да докаже хипотезата на Голдбах (всяко четно N>2 може да се представи кат сума от 2 прости числа), защото ще се очаква да имаш резултат всеки път. Освен това тази хипотеза наистина още не е доказана и ще има тръпка :)

3
Lusien.GG avatar Lusien.GG 66 Точки

Перфектен си за преподавател в гимназия laugh такива идеи биха заинтригували доста момчета и биха ги насочили към програмирането. Сега съм на работа и ще се занимавам да го направя laugh

0
krokicha avatar krokicha 76 Точки

Ако искаш да пробваш с големи цели числа някой математически проблем използвай bigintiger типа. За да го използваш трябва да добавиш библиотека в началото на програмата:

using System.Numerics;

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.