Ogurchik-007, Нет, тело функции нельзя описывать в main, где вы ее вызываете. Надо это делать все функции Main. Или сделайте, как у вас с функциями inputArray и printArray, или реализуйте функцию в самом конце файла.
Вы гуглили документацию по libjpeg? У меня вторым результатом выдает прямо код использования. Аккуратно прочитайте комментарии и вам должно стать понятно, в каком формате оно выдает данные и как их запихать в вектор. Кстати, в каком формате вы хотите данные в int-овом векторе? Там выдается (в общем случаее) по 3 байта на 3 канала. Странно хранить это в int.
fjaerj12, Еще одна ошибка: вы там когда пересчитываете minValue и parent через текущую вершину вы можете их обновить у уже ранее добавленных вершин. Это делать нельзя. Так может случится, если, например, рядом с 0 все ребра большие, а дальше все ребра меленькие.
У этого кода другая проблема с точки зрения производительности: input.find(separator, i); работает за квадрат в худшем случае. Если separator длинный, да еще там много частичных совпадений в input, то код будет тормозить.
Стандарт не накладывает никаких ограничений на временную сложность метода find и, насколько мне известно, все распространенные реализации стандартной библиотеки не используют каких-нибудь хитрых алгоритмов вроде Боера-Мура или Кнута-Морриса-Пратта.
Ответ на ваш вопрос вот так дать нельзя. Какую функцию расстояния использовать и как ее нормализовывать целиком и полностью зависит от того, что это за числа, откуда они взялись, какой у них физический смысл и зачем вы их сравниваете. Распишите больше деталей, приведите больше примеров.
alekseiami, Ну данное a на самом деле неважно. Ибо треугольник с углом и соотношением двух сторон можно как угодно масштабировать, что бы a нашлось заданное.
Или можно из квадратного уравнения решать C относительно A. Потом B = kC. А потом остается проверить, что неравенства выполняется. По идее A тоже должно сократиться.
AnnyB_009, Да. Первый вариант выберется с вероятностью 1/8. Второй - с вероятность 7/8*3/7 = 3/8, как надо. Третий с вероятностью 7/8*6/7*3/6 = 3/8. Именно поэтому последующие разы вы генерируете не от 0 до 7, а от 0 до сколько там осталось вариантов.
AnnyB_009, О госпади. Ну тогда можно так - сначала если случайное число от 0 до 7 равно нулю, то первый вариант. Потом, если случайное число от 0 до 6 равно 0,1,2 - то второй варинат, потом случайное число от 0 до 4 должно попасть в 0,1 или 2, и в конце всегда остается четвертый вариант.
ashot_powershot, Ну так проверьте, что у вас сигнатура функции func соответствует тому, что принимает analiz. В одном месте у вас два инта, в дргом - массив.
Вадим Мамонов, Я думаю вы не все рассказали. Вы там точки как-то сортируете перед формулой гаусса? Может, выпуклую оболочку строите? Тогда умножение на 10^6 может помочь в точности сортировки (из-за плохого алгоритма сортировки). Поэтому знак ответа и меняется. Опять же, проблема не в формуле Гаусса и вообще искать близкие точки тут не надо.
Вадим Мамонов, Ну, во-первых, вам же не важно, совпадают ли первые числа в десятичной или двоичной записи. Вам важно, что числа очень близки. Тут можно просто проверять, что относительная разность (|a-b|/b) достаточно мала. Ну, на крайний случай, можно творить битовую магию с мантиссой и экспонентой. Тогда вы получите количество одинаковых двоичных цифр.
Во-вторых, сама ваша идея не правильная. Может получиться отрицательная площадь, если точки заданы не против часовой стрелки, а по. Тогда можно просто взять модуль площади в самом конце. От того, что точки очень близкие у вас отрицательных числ возникать не должно. Кроме того, в процессе вычисления площади по формуле Гаусса часть слагаемых может быть отрицательными - это нормально.
B[i]
или&B[i][0]
А вообще, вы C++ проходите, или C? Если C++, то испольуйте std::vector вместо таких массивов.