Given a curve [ y = x(A – x) ], the task is to find normal at a given point ( x, y) on that curve, where A is an integer number and x, y also any integer.
Examples:
Input: A = 2, x = 2, y = 0 Output: 2y = x - 2 Since y = x(2 - x) y = 2x - x^2 differentiate it with respect to x dy/dx = 2 - 2x put x = 2, y = 0 in this equation dy/dx = 2 - 2* 2 = -2 equation => (Y - 0 ) = ((-1/-2))*( Y - 2) => 2y = x -2 Input: A = 3, x = 4, y = 5 Output: Not possible Point is not on that curve
Approach: First we need to find given point is on that curve or not if the point is on that curve then:
- We need to differentiate that equation that point don’t think too much for differentiation of this equation if you analyze then you find that dy/dx always become A – 2x.
- Put x, y in dy/dx.
- Equation of normal is Y – y = -(1/( dy/dx )) * (X – x).
Below is the implementation of the above approach:
C++
// C++ program for find curve // at given point #include <bits/stdc++.h> using namespace std;
// function for find normal void findNormal( int A, int x, int y)
{ // differentiate given equation
int dif = A - x * 2;
// check that point on the curve or not
if (y == (2 * x - x * x)) {
// if differentiate is negative
if (dif < 0)
cout << 0 - dif << "y = "
<< "x" << (0 - x) + (y * dif);
else if (dif > 0)
// differentiate is positive
cout << dif << "y = "
<< "-x+" << x + dif * y;
// differentiate is zero
else
cout << "x = " << x;
}
// other wise normal not found
else
cout << "Not possible" ;
} // Driver code int main()
{ // declare variable
int A = 2, x = 2, y = 0;
// call function findNormal
findNormal(A, x, y);
return 0;
} |
Java
// Java program for find curve // at given point import java.io.*;
class GFG {
// function for find normal static void findNormal( int A, int x, int y)
{ // differentiate given equation
int dif = A - x * 2 ;
// check that point on the curve or not
if (y == ( 2 * x - x * x)) {
// if differentiate is negative
if (dif < 0 )
System.out.print( ( 0 - dif) + "y = "
+ "x" +(( 0 - x) + (y * dif)));
else if (dif > 0 )
// differentiate is positive
System.out.print( dif + "y = "
+ "-x+" + (x + dif * y));
// differentiate is zero
else
System.out.print( "x = " +x);
}
// other wise normal not found
else
System.out.println( "Not possible" );
} // Driver code
public static void main (String[] args) {
// declare variable
int A = 2 , x = 2 , y = 0 ;
// call function findNormal
findNormal(A, x, y);;
}
} // This Code is contributed by inder_verma.. |
Python3
# Python 3 program for find curve # at given point # function for find normal def findNormal(A, x, y):
# differentiate given equation
dif = A - x * 2
# check that point on the curve or not
if (y = = ( 2 * x - x * x)):
# if differentiate is negative
if (dif < 0 ):
print ( 0 - dif, "y =" , "x" ,
( 0 - x) + (y * dif))
elif (dif > 0 ):
# differentiate is positive
print (dif, "y =" , "- x +" ,
x + dif * y)
# differentiate is zero
else :
print ( "x =" , x)
# other wise normal not found
else :
print ( "Not possible" )
# Driver code if __name__ = = '__main__' :
# declare variable
A = 2
x = 2
y = 0
# call function findNormal
findNormal(A, x, y)
# This code is contributed By # Surendra_Gangwar |
C#
// C# program for find curve // at given point using System;
class GFG
{ // function for find normal static void findNormal( int A,
int x, int y)
{ // differentiate given equation
int dif = A - x * 2;
// check that point on
// the curve or not
if (y == (2 * x - x * x))
{
// if differentiate is negative
if (dif < 0)
Console.Write((0 - dif) + "y = " +
"x" + ((0 - x) + (y * dif)));
else if (dif > 0)
// differentiate is positive
Console.Write(dif + "y = " +
"-x + " + (x + dif * y));
// differentiate is zero
else
Console.Write( "x = " + x);
}
// other wise normal not found
else
Console.WriteLine( "Not possible" );
} // Driver code static public void Main ()
{ // declare variable
int A = 2, x = 2, y = 0;
// call function findNormal
findNormal(A, x, y);
} } // This code is contributed by ajit |
PHP
<?php // PHP program for find curve // at given point // function for find normal function findNormal( $A , $x , $y )
{ // differentiate given equation
$dif = $A - $x * 2;
// check that point on the
// curve or not
if ( $y == (2 * $x - $x * $x ))
{
// if differentiate is negative
if ( $dif < 0)
echo (0 - $dif ), "y = " ,
"x" , (0 - $x ) + ( $y * $dif );
else if ( $dif > 0)
// differentiate is positive
echo $dif , "y = " ,
"-x+" ,( $x + $dif * $y );
// differentiate is zero
else
echo "x = " , $x ;
}
// other wise normal not found
else
echo "Not possible" ;
} // Driver code // declare variable $A = 2;
$x = 2;
$y = 0;
// call function findNormal findNormal( $A , $x , $y );
// This code is contributed by ajit ?> |
Javascript
<script> // Javascript program for find curve at given point
// function for find normal
function findNormal(A, x, y)
{
// differentiate given equation
let dif = A - x * 2;
// check that point on
// the curve or not
if (y == (2 * x - x * x))
{
// if differentiate is negative
if (dif < 0)
document.write((0 - dif) + "y = " +
"x" + ((0 - x) + (y * dif)));
else if (dif > 0)
// differentiate is positive
document.write(dif + "y = " +
"-x + " + (x + dif * y));
// differentiate is zero
else
document.write( "x = " + x);
}
// other wise normal not found
else
document.write( "Not possible" );
}
// declare variable
let A = 2, x = 2, y = 0;
// call function findNormal
findNormal(A, x, y);
</script> |
Output:
2y = x-2
Time Complexity : O(1) ,as we are not using any loop.
Auxiliary Space : O(1) ,as we are not using any extra space.