Griboks, вписанная окружность будет давать ложно-отрицательный ошибки. Описанная - ложно полложительные. Плюс эти вычисления будут тяжелее точной проверки, ибо для расстояния надо или корни считать, или сумму радиусов в квадрат возводить.
Akina, А вы распишите, почему только 6 вариантов и почему достаточно только 3 рассматривать. Подробно, чтобы человек не дружащий с математикой и логикой понял. У вас не сильно короче моего ответа получится.
А вообще, я предпочитаю минимумы/максимумы, потому что это не только позволяет проверить наличие пересечения, но и сразу его находит.
exp_i = c*i^a
c = exp_1
a =(log(exp_n) - log(exp_1))/log(n)
Можно много вариантов попридумывать. Вам нужна какая-то монтонная функция, проходящая через точки (1, exp_1) и (n, exp_n). Вы находите ее форму, а потом ищите ее значения во всех целых точках от 1 до n. Выбирая функции с разной скоростью роста вы можете регулировать распределение экспы по уровням.
DaNKuL, Я вам формулу привел выше для k - это и есть множитель. Там exp_1 и exp_n - значения опыта для первого и последнего уровня, n - их количетсва.
Функцию логарифма и экспоненты в c# загуглите сами. Наверняка они так и называются (exp и log).
А дальше просто домножайте на этот множитель. Считайте все во float (числа с плавающей точкой). И только потом округляйте, чтобы ошибка не накпливалась.
habrdima, Зависит от конкретной задачи/предметной области.
из за чего работает только одна стрелка из двух?
Ну вот допустим у вас граф отношение любви описывает. Ну вот не любит эсмиральда горбуна и все. Стрелочка есть только в одну сторону.
Или у вас граф описывает дороги в городе. Вот решило ГИБДД поставить знак "односторонее движение" на этой улице. И все. Стрелочка только в одну сторону. Где-то бетонный блок поставили - стрелочек нет ни в какую сторону. Такой граф стоит рассматривать как ориентированный. Даже если где-то есть двусторонние дороги, хранить надо обе половинки, ведь в любой момент одна из них может пропасть.
habrdima, 2 стрелки означают, что есть связь и туда и обратно. Ромео людит Джульетту и Джульетта любит Ромео. Стрелочки и туда и обратно. Чудище любит Эсмиральду, но не обратно. Стрелочка только в одну сторону.
Линия без стрелок означает, что связь есть в обе стороны. То же самое, что и две стрелочки туда и обратно. Просто, если в графе нет и не может быть одиноких стрелочек, граф называют неориентированным и не усложняют модель парами.
habrdima, попроще примеров придумать не могу. Это редкость, на самом деле. Нарушение симметрии там в том, что поток имеет направление и в процессе работы алгоритма получается, что в одну сторону течет, а в другую - нет. И это очень естественно обрабатывается, ели изменить пропускную способность направленных ребер.
mayton2019, Тут все сложнее коммивояжора, потому что нельзя используемые в одном пути вершины/ребра использовать в следующем. Так что даже если фиксировать последовательность, кратчайшие пути фиг найдешь.