Забелязахме, че използвате Ad Blocker

Разбираме желанието ви за по-добро потребителско изживяване, но рекламите помагат за поддържането на форума.

Имате два варианта:
1. Регистрирайте се безплатно и разглеждайте форума без реклами
2. Изключете Ad Blocker-а за този сайт:
    • Кликнете върху иконата на Ad Blocker в браузъра
    • Изберете "Pause" или "Disable" за този сайт

Регистрирайте се или обновете страницата след изключване на Ad Blocker

Отиди на
Форум "Наука"

Препръчано мнение

  • Потребител
Публикувано

Здравейте, търся алгоритъм, който калкулира хроматичното число на графа, като времето за което го прави не е от значение. Търся точно решение за хроматичното число, а не приблизително! Искам да тествам мой алгоритъм дали дава правилно хроматичното число, като ги сравня.

  • Глобален Модератор
Публикувано (edited)
Преди 9 часа, electroweakk said:

Здравейте, търся алгоритъм, който калкулира хроматичното число на графа, като времето за което го прави не е от значение. Търся точно решение за хроматичното число, а не приблизително! Искам да тествам мой алгоритъм дали дава правилно хроматичното число, като ги сравня.

Защо не попиташ ChatGPT? От пръв скок, ти дава два алгоритъма - точен но бавен, и приближен но бърз. Може да укажеш на какъв език да ти ги даде, както и да завъдиш диалог за подробностите ако има неразбиране...

Може да му дадеш твоят алгоритъм и да го обсъдите.

Редактирано от scaner
  • Глобален Модератор
Публикувано
Преди 30 минути, electroweakk said:

Чата се дъни, и ми писна да се занимавам с него. И като го питам той се ми вика "извинявай е са го оправям", и после пак същата глупост.

Не знам, нещо са ви обтегнати отношенията :) 

Аз го ползвам за код, и то доста сериозен. Безплатната версия обикновено от първият път дава малки грешки, но това се оказва правило, и аз винаги, дори без да гледам кода, му казвам че има грешка в първият вариант. При което той ми се извинява, и дава втора версия, вече без грешки. Това го няма при платената версия, там веднага ти пуска канвас и почвате интерактивно да проследявате работата на кода. Обаче ако ползваш някаква готова библиотека и разчиташ, че той е обучен и търсиш да направиш корекции в нея, често нещата се влошават - почва да халюцинира и да си измисля функции и променливи, които не съществуват в кода. Трябва да му дадеш определен сорс или добре дефинирана задача, за да няма халюцинации.

За твоят проблем на непретенциозният въпрос "търся алгоритъм, който калкулира хроматичното число на графа" от първият път ми даде:

bool isSafe(int v, vector<vector<int>> &graph, vector<int> &color, int c) {
    for (int i = 0; i < graph.size(); i++) {
        if (graph[v][i] && color[i] == c)
            return false;
    }
    return true;
}

bool graphColoringUtil(vector<vector<int>> &graph, int m, vector<int> &color, int v) {
    if (v == graph.size()) return true;

    for (int c = 1; c <= m; c++) {
        if (isSafe(v, graph, color, c)) {
            color[v] = c;
            if (graphColoringUtil(graph, m, color, v + 1))
                return true;
            color[v] = 0;
        }
    }
    return false;
}

int findChromaticNumber(vector<vector<int>> &graph) {
    int n = graph.size();
    for (int m = 1; m <= n; m++) {
        vector<int> color(n, 0);
        if (graphColoringUtil(graph, m, color, 0))
            return m;
    }
    return n; // В най-лошия случай, всеки връх има различен цвят
}

на СИ++, с пояснения:

Вход:

graph — матрица на съседство (adjacency matrix), където graph[i][j] = 1, ако има ребро между i и j.

🔸 Изход:

  • Минималният брой цветове, с които графът може да бъде оцветен — хроматичното число.

И накрая предлага:

Ако ми кажеш повече за:

  • размера на графа (брой върхове/ребра)

  • дали е плътен или разреден

…мога да ти предложа още по-оптимизиран вариант. Искаш ли да го свържем с конкретно твое приложение?

Предлага и готова библиотека на Пайтън...


 Така, от пръв поглед ми се струва че това е добър отскок. Но при всички случаи е добре подробно да му обясниш проблема (в желателният случай - на английски, за да няма двусмислия) и да го предизвикаш на диалог по кода.

  • Потребител
Публикувано
Преди 39 минути, scaner said:

Не знам, нещо са ви обтегнати отношенията :) 

Аз го ползвам за код, и то доста сериозен. Безплатната версия обикновено от първият път дава малки грешки, но това се оказва правило, и аз винаги, дори без да гледам кода, му казвам че има грешка в първият вариант. При което той ми се извинява, и дава втора версия, вече без грешки. Това го няма при платената версия, там веднага ти пуска канвас и почвате интерактивно да проследявате работата на кода. Обаче ако ползваш някаква готова библиотека и разчиташ, че той е обучен и търсиш да направиш корекции в нея, често нещата се влошават - почва да халюцинира и да си измисля функции и променливи, които не съществуват в кода. Трябва да му дадеш определен сорс или добре дефинирана задача, за да няма халюцинации.

За твоят проблем на непретенциозният въпрос "търся алгоритъм, който калкулира хроматичното число на графа" от първият път ми даде:

bool isSafe(int v, vector<vector<int>> &graph, vector<int> &color, int c) {
    for (int i = 0; i < graph.size(); i++) {
        if (graph[v][i] && color[i] == c)
            return false;
    }
    return true;
}

bool graphColoringUtil(vector<vector<int>> &graph, int m, vector<int> &color, int v) {
    if (v == graph.size()) return true;

    for (int c = 1; c <= m; c++) {
        if (isSafe(v, graph, color, c)) {
            color[v] = c;
            if (graphColoringUtil(graph, m, color, v + 1))
                return true;
            color[v] = 0;
        }
    }
    return false;
}

int findChromaticNumber(vector<vector<int>> &graph) {
    int n = graph.size();
    for (int m = 1; m <= n; m++) {
        vector<int> color(n, 0);
        if (graphColoringUtil(graph, m, color, 0))
            return m;
    }
    return n; // В най-лошия случай, всеки връх има различен цвят
}

на СИ++, с пояснения:

Вход:

graph — матрица на съседство (adjacency matrix), където graph[i][j] = 1, ако има ребро между i и j.

🔸 Изход:

  • Минималният брой цветове, с които графът може да бъде оцветен — хроматичното число.

И накрая предлага:

Ако ми кажеш повече за:

  • размера на графа (брой върхове/ребра)

  • дали е плътен или разреден

…мога да ти предложа още по-оптимизиран вариант. Искаш ли да го свържем с конкретно твое приложение?

Предлага и готова библиотека на Пайтън...


 Така, от пръв поглед ми се струва че това е добър отскок. Но при всички случаи е добре подробно да му обясниш проблема (в желателният случай - на английски, за да няма двусмислия) и да го предизвикаш на диалог по кода.

Аз съм  js и ми дава същото, пробвай различни графи с 6 точки и за една от тях няма да дава коректно.

  • Глобален Модератор
Публикувано (edited)
Преди 43 минути, electroweakk said:

Аз съм  js и ми дава същото, пробвай различни графи с 6 точки и за една от тях няма да дава коректно.

Кажи му че си с js за да даде коректен код. И повтарям, диалог. Казваш му какво не работи, и повтаряте. Даваш му примера и обясняваш проблема. Рядко зацикля в предложенията си, обикновено когато ти тъпо очакваш пасивно наготово нещо и той не разбира проблема.

При мен един проблем го разреши, като постави междинни печати за конзолата. И аз откопирах отпечатаното и му го върнах. Реакцията беше: "Ахааа, значи тук трябва да поставим следният оператор..." и всичко тръгна. Това е супер средство, не трябва да се отказваш. Не е панацея, за да тръгне от първият път.

Редактирано от scaner
  • Потребител
Публикувано (edited)
Преди 3 часа, scaner said:

Кажи му че си с js за да даде коректен код. И повтарям, диалог. Казваш му какво не работи, и повтаряте. Даваш му примера и обясняваш проблема. Рядко зацикля в предложенията си, обикновено когато ти тъпо очакваш пасивно наготово нещо и той не разбира проблема.

При мен един проблем го разреши, като постави междинни печати за конзолата. И аз откопирах отпечатаното и му го върнах. Реакцията беше: "Ахааа, значи тук трябва да поставим следният оператор..." и всичко тръгна. Това е супер средство, не трябва да се отказваш. Не е панацея, за да тръгне от първият път.

Е давах му кво ли не, занимавам се с него от 2 дни, казвам му на какво да го пише, всичко подробно, то прави една и съща грешка. И то греши на елементарни примери с графи от 6 точки с голям плътност (дава ми някво малко число, а то видимо трябва де по-голямо (даже го чертая да съм сиг.)). Много надежди се възлагат на чата. Да полезен е, но за някой неща е дроб сарма. Аз го ползвам от как се е пръкнал, не съм от вчера. А дори и да спре да греши за елементарните примери, как да съм сиг. за останалите графи. Е ми няма как. Точно за това пиша (човек е нужен понякога). 

Редактирано от electroweakk

Напиши мнение

Може да публикувате сега и да се регистрирате по-късно. Ако вече имате акаунт, влезте от ТУК , за да публикувате.

Guest
Напиши ново мнение...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Вашето предишно съдържание е възстановено.   Изчистване на редактора

×   You cannot paste images directly. Upload or insert images from URL.

Зареждане...

За нас

"Форум Наука" е онлайн и поддържа научни, исторически и любопитни дискусии с учени, експерти, любители, учители и ученици.

За своята близо двайсет годишна история "Форум Наука" се утвърди като мост между тези, които знаят и тези, които искат да знаят. Всеки ден тук влизат хиляди, които търсят своя отговор.  Форумът е богат да информация и безкрайни дискусии по различни въпроси.

Подкрепи съществуването на форумa - направи дарение:

Дари

 

 

За контакти:

×
×
  • Create New...
/* Revenue-Ads-Footer */ /* За дарение */
×

Подкрепи форума!

Дори малко дарение от 5-10 лева от всеки, който намира форума за полезен, би направило огромна разлика. Това не е просто финансова подкрепа - това е вашият начин да кажете "Да, този форум е важен за мен и искам да продължи да съществува". Заедно можем да осигурим бъдещето на това специално място за споделяне на научни знания и идеи.