Project Euler 205

by uwi
♥0 | Line 45 | Modified 2009-06-07 17:18:07 | MIT License
play

ActionScript3 source code

/**
 * Copyright uwi ( http://wonderfl.net/user/uwi )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/4nj2
 */

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    public class Euler205 extends Sprite {
        private var _tf : TextField;
        
        public function Euler205() {
            _tf = new TextField();
            _tf.width = 465;
            _tf.height = 465;
            addChild(_tf);
            
            _tf.appendText(solve().toString() + "\n");
        }
        
        private function solve() : Number
        {
            var a : Array = emulate(4, 9);
            var b : Array = emulate(6, 6);
            
            var ret : Number = 0.0;
            for(var i : int = 0;i <= 36;i++){
                var sum : Number = 0.0;
                for(var j : int = 0;j < i;j++){
                    sum += b[j];
                }
                ret += a[i] * sum;
            }
            return ret;
        }
        
        private function emulate(n : int, m : int) : Array
        {
            var ar : Array = [1.0];
            
            for(var i : int = 0;i < m;i++){
                _tf.appendText(ar.toString() + "\n");
                var len : int = ar.length + n;
                var d : Array = [];
                for(var j : int = 0;j < len;j++)d.push(0.0);
                for(var k : int = 0;k < ar.length;k++){
                    for(var l : int = 1;l <= n;l++){
                        d[k + l] += ar[k] / n;
                    }
                }
                ar = d;
            }
            
            return ar;
        }
    }
}