Deleted
Joined: Oct 12, 2024 9:32:21 GMT -5
Posts: 0
|
Post by Deleted on Jun 11, 2015 19:40:53 GMT -5
Look, New Jersey got math!
|
|
CarolinaKat
Junior Associate
Joined: Dec 21, 2010 16:10:37 GMT -5
Posts: 6,364
|
Post by CarolinaKat on Jun 16, 2015 15:45:35 GMT -5
Found a new one:
|
|
myrrh
Established Member
Joined: Apr 12, 2011 22:55:14 GMT -5
Posts: 478
|
Post by myrrh on Jun 16, 2015 20:42:57 GMT -5
Ok Virgil, here is my function.
Assume x is in dollars let y = log[base2](x /.05) if y is negative, n=0 if y is a positive whole number, y=n. If not a whole number, n = round y to the next whole number.
This translates to the following in Open Office Calc: =IF(LOG(A1/0.05;2)<=0;0;IF(LOG(A1/0.05;2)=INT(LOG(A1/0.05;2));(LOG(A1/0.05;2));ROUNDUP(LOG(A1/0.05;2)))) where A1 = x excel code is similar but replace semicolons with commas, and I am not sure if INT works the same way. Will test tomorrow.
|
|
myrrh
Established Member
Joined: Apr 12, 2011 22:55:14 GMT -5
Posts: 478
|
Post by myrrh on Jun 17, 2015 13:15:13 GMT -5
Here's the excel version. =IF(LOG(A1/0.05,2)<=0,0,IF(LOG(A1/0.05,2)=INT(LOG(A1/0.05,2)),(LOG(A1/0.05,2)),ROUNDUP(LOG(A1/0.05,2),0)))
So do I get a cookie or what?
|
|
Peace77
Senior Member
Joined: Dec 29, 2010 1:42:40 GMT -5
Posts: 3,992
|
Post by Peace77 on Jun 17, 2015 13:44:53 GMT -5
Here's your cookie.
|
|
myrrh
Established Member
Joined: Apr 12, 2011 22:55:14 GMT -5
Posts: 478
|
Post by myrrh on Jun 17, 2015 14:08:49 GMT -5
LOL! Thanks Peace.
|
|
fatbear
Initiate Member
Joined: Jun 1, 2012 17:46:47 GMT -5
Posts: 56
|
Post by fatbear on Jun 17, 2015 16:04:24 GMT -5
Ok Virgil, here is my function. Assume x is in dollars let y = log[base2]( x /.05) if y is negative, n=0 if y is a positive whole number, y=n. If not a whole number, n = round y to the next whole number. This translates to the following in Open Office Calc: =IF(LOG(A1/0.05;2)<=0;0;IF(LOG(A1/0.05;2)=INT(LOG(A1/0.05;2));(LOG(A1/0.05;2));ROUNDUP(LOG(A1/0.05;2)))) where A1 = xexcel code is similar but replace semicolons with commas, and I am not sure if INT works the same way. Will test tomorrow. You're using functions not in the original list: LOG, IF, and ROUNDUP (the ceiling function)
|
|
myrrh
Established Member
Joined: Apr 12, 2011 22:55:14 GMT -5
Posts: 478
|
Post by myrrh on Jun 17, 2015 16:19:50 GMT -5
well apparently I'm not the math champion of the world. But substitute ln(x/.05)/ln(2) for log[base 2] (x/ .05). I'm not sure how to do the problem without if and ceiling functions. Have at it fatbear.
|
|
fatbear
Initiate Member
Joined: Jun 1, 2012 17:46:47 GMT -5
Posts: 56
|
Post by fatbear on Jun 18, 2015 14:32:37 GMT -5
I got to the same point as you and gave up.
My problem is getting rid of if().
You can build ceiling from floor (if x != floor(x) return floor(x)+1, else return x).
|
|
Virgil Showlion
Distinguished Associate
Moderator
[b]leones potest resistere[/b]
Joined: Dec 20, 2010 15:19:33 GMT -5
Posts: 27,448
|
Post by Virgil Showlion on Jun 18, 2015 21:22:49 GMT -5
well apparently I'm not the math champion of the world. But substitute ln(x/.05)/ln(2) for log[base 2] (x/ .05). I'm not sure how to do the problem without if and ceiling functions. Have at it fatbear. Sorry myrrh (is "myrrhcat" a play on "meerkat"?). I hadn't visited the thread in a while. You do indeed get a cookie and the title of "YMAM Math Champion" for a week. The challenge is possible without ceiling and conditionals, but it gets extremely tricky. To get ceiling, we observe that the ceiling function can be implemented via Eq. (1) below, and the max function can be implemented via Eq. (2). Combining these with your (correct) formulation yields Eq. (3), which is the complete, canonical answer.
|
|