1

Box-Muller Transformation

Unsolved
Prob. and Stats

Difficulty: 2 | Problem written by mesakarghm
Problem reported in interviews at

Apple

The Box-Muller Rransform is a method for generating normally distributed random numbers from uniformly distributed random numbers. The Box-Muller Transformation can be summarized as follows. 

Suppose u1 and u2 are independent random variables that are uniformly distributed between 0 and 1 and let:

\(z_1 = \sqrt {-2 log(u_1)} {cos (2\pi u_2)} \)

\(z_2 = \sqrt {-2 log(u_1)} {sin (2\pi u_2)} \)

Then, z1 and z2 are independent random variables with a standard normal distribution. 

Write a function transform(u1,u2) such that when given two uniformly distributed independent random variables (integers), it generates a tuple containing z1 and z2 with standard normal distribution using Box-Muller Transform.

Sample Input:
<class 'list'>
u1: 0.66971127
u2: 0.50960964

Expected Output:
<class 'tuple'>
(-0.8938107248822067, -0.05403320867504681)

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Magni autem aperiam dolorem nesciunt totam consequatur iste harum accusantium ea, consequuntur expedita asperiores doloremque animi cupiditate doloribus eius natus odit id quas, illo id adipisci odit soluta aperiam impedit necessitatibus fugit, quo velit in. Voluptas illum quaerat sequi omnis voluptatum doloremque mollitia, suscipit animi voluptate nobis, magnam nobis consequatur delectus hic optio dignissimos quos, expedita nihil deserunt repellendus minus est reprehenderit, laborum esse sequi totam dolore exercitationem vero consectetur quae recusandae iste officiis. Consequatur quisquam voluptate dignissimos, cum voluptas repellat labore explicabo soluta corporis modi autem eum, deserunt ex et sapiente nesciunt totam minima cumque, neque est tenetur distinctio dolores ducimus atque impedit corporis eveniet id. Minus atque molestiae, praesentium aliquam dolor, itaque reprehenderit ratione recusandae delectus repudiandae iusto unde quam perferendis, dolorum accusamus ab.

Saepe fuga quae vitae quidem, corporis tenetur expedita inventore consequuntur aliquid voluptate necessitatibus, aliquid asperiores ea aliquam eius molestias dolorem esse deleniti et unde reiciendis, odio facilis soluta quisquam repellat porro dolorem, culpa ad repudiandae accusantium praesentium rerum provident debitis eos doloribus? Iste ipsam assumenda itaque earum repellat non aliquam labore officia, nisi delectus magni, soluta dolorem dicta sint excepturi sit cupiditate reiciendis, quia blanditiis maiores ea enim laboriosam veniam.

Exercitationem quas culpa voluptate dignissimos nobis dolor tempora totam, error placeat aut laboriosam enim sequi consequatur maiores, iusto pariatur consectetur voluptatum saepe culpa, ad dicta molestiae animi error ipsa quia architecto exercitationem?

This is a premium feature.
To access this and other such features, click on upgrade below.

Ready.

Input Test Case

Please enter only one test case at a time
numpy has been already imported as np (import numpy as np)