human
Probability of obtaining pairs from two arrays such that element from the first array is smaller than that of the second array | Function to find probability such that x < y and X belongs to arr1 [ ] & Y belongs to arr2 [ ].
Stores the length of arr1.
Stores the length of arr2.
Stores the result.
Sort the arr2 [ ] in the ascending order.
Traverse the arr1 [ ].
Stores the count of elements in arr2 that are greater than arr [ i ].
Increment res by y.
Update the resultant probability.
Return the result.
Function to return the count of elements from the array which are greater than k.
Stores the index of the leftmost element from the array which is at least k.
Finds number of elements greater than k.
If mid element is at least K , then update the value of leftGreater and r.
Update leftGreater.
Update r.
If mid element is at most K , then update the value of l.
Return the count of elements greater than k.
Driver code"
How can the above be solved in Python?
assistant
#Here is code to probability of obtaining pairs from two arrays such that element from the first array is smaller than that of the second array and the other steps required.
 def probability ( arr1 , arr2 ) :
	n = len ( arr1 )
	m = len ( arr2 )
	res = 0
	arr2 . sort ( )
	for i in range ( n ) :
		y = countGreater ( arr2 , arr1 [ i ] )
		res += y
	res /= ( n * m )
	return res
def countGreater ( arr , k ) :
	n = len ( arr )
	l = 0
	r = n - 1
	leftGreater = n
	while l <= r :
		m = ( l + r ) // 2
		if ( arr [ m ] > k ) :
			leftGreater = m
			r = m - 1
		else :
			l = m + 1
	return n - leftGreater
if __name__ == ' _ _ main _ _ ' :
	arr1 = [ 5 , 2 , 6 , 1 ]
	arr2 = [ 1 , 6 , 10 , 1 ]
	print ( probability ( arr1 , arr2 ) )