wieiner_ - GraPa : Graph Painter [игры]
February 8th, 2020
06:08 pm

[Link]

Previous Entry Add to Memories Tell A Friend Next Entry
GraPa : Graph Painter
нучо! накидал за вчера Германец Вам Пейнт фотошопный:

https://github.com/wieiner/grapa.git

вобщем, за 1 день напейсах "прАгрАмму"
для расчета техномагических многогранников.
на MSVC++:

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

вобщем-то, в программе недостаток в том, что нужно еще сделать автоперезапуск,
чтобы если свет отрубят, оно не сначала считало, а продолжало с последнего автосейва
и еще возможность разделить задачу расчета не только между потоками, но и между процессами
(типа .ini-файл в котором можно задать диапазон перебора комбинаций, а не чтобі от 0 до МАХ шпарило)

основные процедуркі -- две: calc() и proof(). первая генерит последовательность раскраски графа,
а вторая апрувит или банит. (причем вторая візівается из первой).
вот они собсно:



void grapainter::calculate(int idelta, int igap)
{


fs.open("log"+ to_string(idelta+1) +".txt", std::fstream::in | std::fstream::out | std::fstream::app);

cout << "tread " << idelta+1 << " started" << endl;
fs << "tread " << idelta+1 << " started" << endl;

int l = gralinks.size();
long long len = pow1(numABC , l);
cout << " number of steps of calculation = " << len << endl;
for (long long i = idelta; i < (long long)len; i+= igap )
{
if ((i % 8000000) == 0) cout << "calculation step #" << i << " passed.. it is " << (( (long double)1.0 / (len / ((long long)(1+idelta)*i+1))) * 10000)/100 << " percent of work.." << endl;
for (int j = 0; j < l; j++)
{
long long p = pow1(numABC, j+1);
long long remndr = i - (i / p)* p; //otrezali werchnie razrjady
remndr = remndr / (pow1(numABC, j));

gralinks[j].a = remndr;
}


proof();
}

fs << endl << "calculate_mthrded() ended " << endl;
fs.close();
return;
}


bool grapainter::proof()
{
static int i = 0;
i++;
bool isNotAllSymbolsUsed = false;
int* bv = new int[numABC+1];
for (auto a : grobj) {

for (int k = 0; k <= numABC; k++) bv[k] = 0;
for (auto l : a.inner_gralinks)
{
if (gralinks[l].a < 0) bv[numABC]++;
else bv[gralinks[l].a]++;
}

if (bv[numABC])
{
fs << endl << "combination " << i << ") error not attributed link found" << endl;
return false;
}
for (int k = 0; k < numABC; k++)
if (bv[k] > 1)
{
//it is not good combination. return
delete[] bv; bv = nullptr;
return false;
} else
if (bv[k] == 0) isNotAllSymbolsUsed = true;
}

//ok! godgiven combination found. will record it!
fs << endl << i << ") ";
if (isNotAllSymbolsUsed) fs << "NOT ALL SYMBOLS USED |";
for (auto a : gralinks) fs << "name " << a.name << " a = " << namesABC[a.a] << " | ";

delete[] bv; bv = nullptr;
return true;
}







_______________________
current music: ну простенькое: намешАть, чтобы поить Вениамина, чтобы играть с ним в Шахматы, чтобы не Умер.

Current Mood: bored
Current Music: https://www.youtube.com/watch?v=NTiaCV47-bw

(18 комментариев | сказать)

Comments
 
From:(Anonymous)
Date:February 8th, 2020 - 07:42 pm
(Link)
уважаю процедурное програмирование, в этом всё
! но можно было переменные задать и немного там есть ошибки, конечно
[User Picture]
From:[info]wieiner_
Date:February 8th, 2020 - 07:51 pm
(Link)
какой ВАМ В ШЛЯПУ, процедурное программирование

разуй глаза, ядрен батон.
кураторы вам не наливают штоле?
From:(Anonymous)
Date:February 8th, 2020 - 08:16 pm
(Link)
слышыш писюн. если тебе говворят что там есть ошибки, это не значит что их там нет
[User Picture]
From:[info]wieiner_
Date:February 8th, 2020 - 08:40 pm
(Link)
блин, скем я разговариваю. да у тебя же в ДНК ошибки!
From:(Anonymous)
Date:February 9th, 2020 - 01:23 am
(Link)
lol
[User Picture]
From:[info]kaloedin
Date:February 8th, 2020 - 07:45 pm
(Link)
GramPa
[User Picture]
From:[info]wieiner_
Date:February 8th, 2020 - 07:52 pm
(Link)
вен-нник, вен-нник шизоХрен-нник!
From:(Anonymous)
Date:February 8th, 2020 - 09:46 pm
(Link)
Покажи 1 результат работы твоей программы. Что в итоге она должна высчитать?
[User Picture]
From:[info]wieiner_
Date:February 8th, 2020 - 10:22 pm
(Link)
рассчитывает значения ребер (отрезков, соединяющих вершины или связей) в некотором заданном наборе из символов (алфавите).
фишка в том, чтобы все ребра в пределах одной вершины (одного обьекта) были названы разными символами.
тоесть чтобы у вершины не было ребер одинаковых типов (одинаковых связей).

ниже -- это пример рассчитанных связей между обьектами (ребер)
и количество комбинаций, которые нужно проверить для каждого типа многогранника(number of steps of calculation)

grawitahedra:
======================
number of steps of calculation = 101559956668416

101 559 956 668 416

101559956668416 ÷ 128 =‬ 793 437 161 472
======================


======================
pentahedra:
number of steps of calculation = 30517578125

30 517 578 125


======================
octahedra:
number of steps of calculation = 16777216

16 777 216

tread 1 started (найдено 48 решений)
1797319) name XA a = F | name XB a = T | name XC a = N | name XD a = U | name AB a = N | name BC a = U | name CD a = F | name DA a = T | name AZ a = U | name BZ a = F | name CZ a = T | name DZ a = N |
1814893) name XA a = N | name XB a = U | name XC a = F | name XD a = T | name AB a = T | name BC a = N | name CD a = U | name DA a = F | name AZ a = U | name BZ a = F | name CZ a = T | name DZ a = N |
1996936) name XA a = U | name XB a = T | name XC a = N | name XD a = F | name AB a = N | name BC a = F | name CD a = U | name DA a = T | name AZ a = F | name BZ a = U | name CZ a = T | name DZ a = N |
2023801) name XA a = N | name XB a = F | name XC a = U | name XD a = T | name AB a = T | name BC a = N | name CD a = F | name DA a = U | name AZ a = F | name BZ a = U | name CZ a = T | name DZ a = N |
2585245) name XA a = N | name XB a = U | name XC a = T | name XD a = F | name AB a = F | name BC a = N | name CD a = U | name DA a = T | name AZ a = U | name BZ a = T | name CZ a = F | name DZ a = N |
2596042) name XA a = T | name XB a = F | name XC a = N | name XD a = U | name AB a = N | name BC a = U | name CD a = T | name DA a = F | name AZ a = U | name BZ a = T | name CZ a = F | name DZ a = N |
2995276) name XA a = U | name XB a = F | name XC a = N | name XD a = T | name AB a = N | name BC a = T | name CD a = U | name DA a = F | name AZ a = T | name BZ a = U | name CZ a = F | name DZ a = N |
3003061) name XA a = N | name XB a = T | name XC a = U | name XD a = F | name AB a = F | name BC a = N | name CD a = T | name DA a = U | name AZ a = T | name BZ a = U | name CZ a = F | name DZ a = N |
3564505) name XA a = N | name XB a = F | name XC a = T | name XD a = U | name AB a = U | name BC a = N | name CD a = F | name DA a = T | name AZ a = F | name BZ a = T | name CZ a = U | name DZ a = N |
3594382) name XA a = T | name XB a = U | name XC a = N | name XD a = F | name AB a = N | name BC a = F | name CD a = T | name DA a = U | name AZ a = F | name BZ a = T | name CZ a = U | name DZ a = N |
3773413) name XA a = N | name XB a = T | name XC a = F | name XD a = U | name AB a = U | name BC a = N | name CD a = T | name DA a = F | name AZ a = T | name BZ a = F | name CZ a = U | name DZ a = N |
3793999) name XA a = F | name XB a = U | name XC a = N | name XD a = T | name AB a = N | name BC a = T | name CD a = F | name DA a = U | name AZ a = T | name BZ a = F | name CZ a = U | name DZ a = N |
4926931) name XA a = F | name XB a = N | name XC a = T | name XD a = U | name AB a = T | name BC a = U | name CD a = F | name DA a = N | name AZ a = U | name BZ a = F | name CZ a = N | name DZ a = T |
4961326) name XA a = T | name XB a = U | name XC a = F | name XD a = N | name AB a = N | name BC a = T | name CD a = U | name DA a = F | name AZ a = U | name BZ a = F | name CZ a = N | name DZ a = T |
5126548) name XA a = U | name XB a = N | name XC a = T | name XD a = F | name AB a = T | name BC a = F | name CD a = U | name DA a = N | name AZ a = F | name BZ a = U | name CZ a = N | name DZ a = T |
5170234) name XA a = T | name XB a = F | name XC a = U | name XD a = N | name AB a = N | name BC a = T | name CD a = F | name DA a = U | name AZ a = F | name BZ a = U | name CZ a = N | name DZ a = T |
6502030) name XA a = T | name XB a = U | name XC a = N | name XD a = F | name AB a = F | name BC a = T | name CD a = U | name DA a = N | name AZ a = U | name BZ a = N | name CZ a = F | name DZ a = T |
6524377) name XA a = N | name XB a = F | name XC a = T | name XD a = U | name AB a = T | name BC a = U | name CD a = N | name DA a = F | name AZ a = U | name BZ a = N | name CZ a = F | name DZ a = T |
7123228) name XA a = U | name XB a = F | name XC a = T | name XD a = N | name AB a = T | name BC a = N | name CD a = U | name DA a = F | name AZ a = N | name BZ a = U | name CZ a = F | name DZ a = T |
7128754) name XA a = T | name XB a = N | name XC a = U | name XD a = F | name AB a = F | name BC a = T | name CD a = N | name DA a = U | name AZ a = N | name BZ a = U | name CZ a = F | name DZ a = T |
7481290) name XA a = T | name XB a = F | name XC a = N | name XD a = U | name AB a = U | name BC a = T | name CD a = F | name DA a = N | name AZ a = F | name BZ a = N | name CZ a = U | name DZ a = T |
7522717) name XA a = N | name XB a = U | name XC a = T | name XD a = F | name AB a = T | name BC a = F | name CD a = N | name DA a = U | name AZ a = F | name BZ a = N | name CZ a = U | name DZ a = T |
7899106) name XA a = T | name XB a = N | name XC a = F | name XD a = U | name AB a = U | name BC a = T | name CD a = N | name DA a = F | name AZ a = N | name BZ a = F | name CZ a = U | name DZ a = T |
7921951) name XA a = F | name XB a = U | name XC a = T | name XD a = N | name AB a = T | name BC a = N | name CD a = F | name DA a = U | name AZ a = N | name BZ a = F | name CZ a = U | name DZ a = T |
8855266) name XA a = T | name XB a = N | name XC a = F | name XD a = U | name AB a = F | name BC a = U | name CD a = T | name DA a = N | name AZ a = U | name BZ a = T | name CZ a = N | name DZ a = F |
8878111) name XA a = F | name XB a = U | name XC a = T | name XD a = N | name AB a = N | name BC a = F | name CD a = U | name DA a = T | name AZ a = U | name BZ a = T | name CZ a = N | name DZ a = F |
9254500) name XA a = U | name XB a = N | name XC a = F | name XD a = T | name AB a = F | name BC a = T | name CD a = U | name DA a = N | name AZ a = T | name BZ a = U | name CZ a = N | name DZ a = F |
9295927) name XA a = F | name XB a = T | name XC a = U | name XD a = N | name AB a = N | name BC a = F | name CD a = T | name DA a = U | name AZ a = T | name BZ a = U | name CZ a = N | name DZ a = F |
9648463) name XA a = F | name XB a = U | name XC a = N | name XD a = T | name AB a = T | name BC a = F | name CD a = U | name DA a = N | name AZ a = U | name BZ a = N | name CZ a = T | name DZ a = F |
9653989) name XA a = N | name XB a = T | name XC a = F | name XD a = U | name AB a = F | name BC a = U | name CD a = N | name DA a = T | name AZ a = U | name BZ a = N | name CZ a = T | name DZ a = F |
10252840) name XA a = U | name XB a = T | name XC a = F | name XD a = N | name AB a = F | name BC a = N | name CD a = U | name DA a = T | name AZ a = N | name BZ a = U | name CZ a = T | name DZ a = F |
10275187) name XA a = F | name XB a = N | name XC a = U | name XD a = T | name AB a = T | name BC a = F | name CD a = N | name DA a = U | name AZ a = N | name BZ a = U | name CZ a = T | name DZ a = F |
11606983) name XA a = F | name XB a = T | name XC a = N | name XD a = U | name AB a = U | name BC a = F | name CD a = T | name DA a = N | name AZ a = T | name BZ a = N | name CZ a = U | name DZ a = F |
11650669) name XA a = N | name XB a = U | name XC a = F | name XD a = T | name AB a = F | name BC a = T | name CD a = N | name DA a = U | name AZ a = T | name BZ a = N | name CZ a = U | name DZ a = F |
11815891) name XA a = F | name XB a = N | name XC a = T | name XD a = U | name AB a = U | name BC a = F | name CD a = N | name DA a = T | name AZ a = N | name BZ a = T | name CZ a = U | name DZ a = F |
11850286) name XA a = T | name XB a = U | name XC a = F | name XD a = N | name AB a = F | name BC a = N | name CD a = T | name DA a = U | name AZ a = N | name BZ a = T | name CZ a = U | name DZ a = F |
12983218) name XA a = T | name XB a = N | name XC a = U | name XD a = F | name AB a = U | name BC a = F | name CD a = T | name DA a = N | name AZ a = F | name BZ a = T | name CZ a = N | name DZ a = U |
13003804) name XA a = U | name XB a = F | name XC a = T | name XD a = N | name AB a = N | name BC a = U | name CD a = F | name DA a = T | name AZ a = F | name BZ a = T | name CZ a = N | name DZ a = U |
13182835) name XA a = F | name XB a = N | name XC a = U | name XD a = T | name AB a = U | name BC a = T | name CD a = F | name DA a = N | name AZ a = T | name BZ a = F | name CZ a = N | name DZ a = U |
13212712) name XA a = U | name XB a = T | name XC a = F | name XD a = N | name AB a = N | name BC a = U | name CD a = T | name DA a = F | name AZ a = T | name BZ a = F | name CZ a = N | name DZ a = U |
13774156) name XA a = U | name XB a = F | name XC a = N | name XD a = T | name AB a = T | name BC a = U | name CD a = F | name DA a = N | name AZ a = F | name BZ a = N | name CZ a = T | name DZ a = U |
13781941) name XA a = N | name XB a = T | name XC a = U | name XD a = F | name AB a = U | name BC a = F | name CD a = N | name DA a = T | name AZ a = F | name BZ a = N | name CZ a = T | name DZ a = U |
14181175) name XA a = F | name XB a = T | name XC a = U | name XD a = N | name AB a = U | name BC a = N | name CD a = F | name DA a = T | name AZ a = N | name BZ a = F | name CZ a = T | name DZ a = U |
14191972) name XA a = U | name XB a = N | name XC a = F | name XD a = T | name AB a = T | name BC a = U | name CD a = N | name DA a = F | name AZ a = N | name BZ a = F | name CZ a = T | name DZ a = U |
14753416) name XA a = U | name XB a = T | name XC a = N | name XD a = F | name AB a = F | name BC a = U | name CD a = T | name DA a = N | name AZ a = T | name BZ a = N | name CZ a = F | name DZ a = U |
14780281) name XA a = N | name XB a = F | name XC a = U | name XD a = T | name AB a = U | name BC a = T | name CD a = N | name DA a = F | name AZ a = T | name BZ a = N | name CZ a = F | name DZ a = U |
14962324) name XA a = U | name XB a = N | name XC a = T | name XD a = F | name AB a = F | name BC a = U | name CD a = N | name DA a = T | name AZ a = N | name BZ a = T | name CZ a = F | name DZ a = U |
14979898) name XA a = T | name XB a = F | name XC a = U | name XD a = N | name AB a = U | name BC a = N | name CD a = T | name DA a = F | name AZ a = N | name BZ a = T | name CZ a = F | name DZ a = U |
calculate_mthrded() ended


======================
tetrahedra:
number of steps of calculation = 729
tread 1 started (найдено 6 решений)
155) name XA a = F | name XZ a = T | name XB a = U | name AZ a = U | name ZB a = F | name BA a = T |
201) name XA a = U | name XZ a = T | name XB a = F | name AZ a = F | name ZB a = U | name BA a = T |
319) name XA a = T | name XZ a = F | name XB a = U | name AZ a = U | name ZB a = T | name BA a = F |
411) name XA a = U | name XZ a = F | name XB a = T | name AZ a = T | name ZB a = U | name BA a = F |
529) name XA a = T | name XZ a = U | name XB a = F | name AZ a = F | name ZB a = T | name BA a = U |
575) name XA a = F | name XZ a = U | name XB a = T | name AZ a = T | name ZB a = F | name BA a = U |
calculate_mthrded() ended


From:(Anonymous)
Date:February 8th, 2020 - 11:45 pm
(Link)
> (найдено 6 решений)
> 155) name XA a = F | name XZ a = T | name XB a = U | name AZ a = U | name ZB a = F | name BA a = T |

Ну нашли мы эту хуйню. Что с ней надо дальше делать?
[User Picture]
From:[info]wieiner_
Date:February 9th, 2020 - 07:49 am
(Link)
это используется в техномагических артефактах и компиляторах artifical intellectuality. считай мы рассчитали то что в математике называется группой.(но тут конечно своя специфика, это как бы хорошо определенный алгоритм, то есть такой ужас, при котором любые действия в нем не выходят за его пределы. Полностью логически увязанный бесконечный кошмар)
https://www.youtube.com/watch?v=ma4g3R0S2Zc

From:(Anonymous)
Date:February 9th, 2020 - 01:30 am
(Link)
Просто называет ребра разными именами чтобы у одной вершины не было одинаково названных ребер? А в остальном как угодно?
[User Picture]
From:[info]wieiner_
Date:February 9th, 2020 - 07:51 am
(Link)
да, в остальном как угодно,
но ты учти, что количество названий строго ограничено
(обычно назвний столько же сколько ребер) и каждое ребро
входит как минимум в два обьекта (связывает их).
поэтому в общем это нетривиальная задача
[User Picture]
From:[info]sadkov
Date:February 8th, 2020 - 09:51 pm
(Link)
Dear God... I forgot how ugly is C++.
[User Picture]
From:[info]wieiner_
Date:February 8th, 2020 - 10:23 pm
(Link)
ну незн.
а в чем ugly, например?
на твою логику?
From:(Anonymous)
Date:February 9th, 2020 - 01:23 am
(Link)
++
From:(Anonymous)
Date:February 9th, 2020 - 01:46 am
(Link)
Что за бэкграунд имидж в цсс у тебя тут пытается с донецкого айпи загрузиться (но не может)?
[User Picture]
From:[info]wieiner_
Date:February 9th, 2020 - 07:53 am
(Link)
а, это надо убрать. хотел когда-то картинку фоном сделать
Powered by LJ.Rossia.org