У меня есть эта постановка задачи, где в данном случае x^2 + y^2 = c
- это уравнение, вы должны оптимально найти кортежи (x,y)
так, чтобы выполнялось равенство.Оптимальный алгоритм вычисления пифагорейского триплета
Учитывая переменную c, значение которой известно, вы должны найти значения (x,y)
. Предположим, если у вас есть c=0
, то x=0
и y=0
. Предположим, у вас есть c=2
, а затем (x,y)
: (-1,1)
(1,-1)
, (-1,-1)
, (1,1)
. Теперь мы должны найти такие значения.
Вам просто нужно подсчитать количество таких кортежей для заданного значения c
.
Теперь я написал заявление, как например:
int getCount(int c) {
int count=0,temp=-1000;
for(int i=-n;i<n-1;i++) {
for(int j=-n,j<n;j++) {
temp= i^2+j^2;
if(temp==c) {
count++;
System.out.println(i+" "+j);
}
}
}
}
есть ли оптимальный способ сделать это?
Обычно a, b, c называется пифагорейской тройкой, если 'a^2 + b^2 = c^2'. – starblue