

SSCrazy
Group: General Forum Members
Last Login: Yesterday @ 5:20 AM
Points: 2,950,
Visits: 1,933





Ten Centuries
Group: General Forum Members
Last Login: Wednesday, April 22, 2015 9:00 AM
Points: 1,428,
Visits: 813


Excellent article.
Even better, I see you used to work in Manchester!
Paul. Manchester,UK.




SSCommitted
Group: General Forum Members
Last Login: Today @ 7:51 AM
Points: 1,619,
Visits: 1,894


I enjoyed your article because it was relevant on multiple levels. Thank you for a wellwritten article!




Forum Newbie
Group: General Forum Members
Last Login: Thursday, April 16, 2015 9:16 AM
Points: 6,
Visits: 275


Hi David,
This is fantastic! I can find many uses for this..
Thanks!
John R




UDP Broadcaster
Group: General Forum Members
Last Login: Today @ 8:45 AM
Points: 1,466,
Visits: 1,892


Good article.
Of course, the point you omitted is how the actual probability of any given failure alters the calculations.
With the lottery example, because each of the numbers is (supposedly) equally likely to be chosen, Pascal's triangle is a perfect model, and shows the true (im)probability of winning.
With the car example, QA testing ensures that parts generally have a much higher probability of working than failing, thus although there's only one way for the whole system to work perfectly, it's more likely than the millions of ways it can fail.




SSCrazy
Group: General Forum Members
Last Login: Yesterday @ 5:20 AM
Points: 2,950,
Visits: 1,933


Yes, and apparently each space shuttle launch expected at least 6000 components to fail but was still designed to work.
On my list of things not to think about is precisely how fast a piece of metal moves inside a motorbike engine when it's between your legs
LinkedIn Profile Newbie on www.simpletalk.com




SSCommitted
Group: General Forum Members
Last Login: Today @ 8:24 AM
Points: 1,945,
Visits: 3,501


I think you got trapped in teh procedural mindset. I would use a look up table with DECIMAL(s, 0) columns so i can get the range I need. Ther is one for 1 to 23! at
http://membres.multimania.fr/rsirdey/facttabl.htm
Now, we can apply a little algebra in a CASE expression instead of brute force: CREATE FUNCTION Perm(@n DECIMAL, @r DECIMAL) RETURNS DECIMAL (s,0) AS RETURN CASE WHEN @r = (0, @n) THEN 1.0 WHEN @r = 1.0 THEN @n THEN (SELECT fact FROM Factrorials WHERE @f = @n) / (SELECT fact FROM Factrorials WHERE @f = (@n@r) ELSE CAST (NULL AS DECIMALs,0)) END;
Books in Celko Series for MorganKaufmann Publishing Analytics and OLAP in SQL Data and Databases: Concepts in Practice Data, Measurements and Standards in SQL SQL for Smarties SQL Programming Style SQL Puzzles and Answers Thinking in Sets Trees and Hierarchies in SQL




SSCrazy
Group: General Forum Members
Last Login: Yesterday @ 5:20 AM
Points: 2,950,
Visits: 1,933


Joe, I should have remembered that. I think one of your books mentioned storing a calendar table rather than trying to workout calendar maths on the fly.
It is so easy to forget that storing a few thousand records for utility sets costs next to nothing but delivers one hell of a lot of utility
LinkedIn Profile Newbie on www.simpletalk.com




Grasshopper
Group: General Forum Members
Last Login: Wednesday, May 29, 2013 11:18 AM
Points: 10,
Visits: 51


Thanks for the great article. It reminds me of why when I used to fly airplanes my instructor kept telling me that the probability of an engine failure in a twin engine plane was twice as high as a single... of course you still had one engine running in a twin.
do it right, or do it over and over, it's up to you




Valued Member
Group: General Forum Members
Last Login: Thursday, April 16, 2015 4:10 AM
Points: 59,
Visits: 424


Don't you also need to make sure that @n <> @r so you don't divide by 0? And @r <> 0 either.



