Algorithms Meetup Problem #4

From: Andy P.
Sent on: Saturday, July 31, 2010 11:52 AM
Hi,

I would like to express my gratitude and thanks to YangXikun,
Deepankar, MichaelMellinger, SamSandberg, fjania, and dawgmatix for
solving and uploading code to our Github repository. We have solutions
in Java, Python, PHP, Lisp, and pseudo code. Great job! We need C,
C++, Scala, Ruby, Ocaml, and Haskell.

Please, follow AlgorithmsNYC on Twitter
(http://twitter.co...­), so we can follow each other and
expand community.

I would like to encourage everyone to start using our Meetup's email
list and forums to share problems and ask questions.

Here is our next "Problem of the week". Please, upload your solutions
to our Github repository

http://github.com...­

Thanks,
Andy

--------------------­--------------------­--------------------­--------------------­--------------------­----------

Problem Statement

You may remember an old computer game called "The Incredible Machine".
It was a game where you could simulate simple processes like balls
falling, lasers shooting, or cats pursuing mice. Moreover, you were
able to perform these observations with different values for
gravitational acceleration.

Imagine a system with some unknown acceleration of gravity. There are
N balls, each fixed initially at some height above the ground. You are
given a int[] height, where the i-th element is the height of the i-th
ball above the ground. At time 0, the first ball is set loose and it
starts falling. When it reaches the ground, the second ball is
instantly set loose, and so on. This continues until the last ball
reaches the ground at time T.

Return the acceleration of gravity in this system. Neglect air
resistance and any other resisting factors. The distance d travelled
by an object falling for time t with no initial velocity in a system
with gravitational acceleration g and no resisting factors is equal to
d = 0.5 * g * t^2.

Definition
    	
Class:	IncredibleMachineEas­y
Method:	gravitationalAcceler­ation
Parameters:	int[], int
Returns:	double
Method signature:	double gravitationalAcceler­ation(int[] height, int T)
(be sure your method is public)


Notes
-	The returned value must have an absolute or relative error less than 1e-9.

Constraints
-	height will contain between 1 and 50 elements, inclusive.
-	Each element of height will be between 1 and 100, inclusive.
-	T will be between 1 and 100, inclusive.

Examples

0)	
    	

{16,23,85,3,35,72,96­,88,2,14,63}

30

Returns:[masked]

That's an acceleration of gravity that might be somewhere on Earth's surface.

1)	
    	

{6,6,6,6,6,6,6,6,6,6­,6,6,6,6,6,6,6,5}

12

Returns:[masked]

And this is likely on Jupiter.

2)	
    	

{8,8}

3

Returns:[masked]

That's a light one.

3)	
    	

{3,1,3,1,3}

12

Returns:[masked]

You could nearly fly under such conditions.

Our Sponsors

  • Pivotal Labs

    Pivotal Labs

  • Vendavo

    Vendavo is the leader in front-line profit optimization

  • Wolfram Research

    Mathematica is the world's ultimate application for computations.

  • Yodle

    Local online advertising for small businesses.

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy