no_santa
Снегур
Тригонометрия
В программе несколько тысяч раз за сессию используется функция sin(arccos($i);
В целях ускорения написал это:
Нужны критика и имхи.
В программе несколько тысяч раз за сессию используется функция sin(arccos($i);
В целях ускорения написал это:
PHP:
$table = array (0=>0,25=>436,50=>873,75=>1309,100=>1745,125=>2181,150=>2618,175=>3054,200=>3490,225=>3926,250=>4362,275=>4798,300=>5234,325=>5669,
350=>6105,375=>6540,400=>6976,425=>7411,450=>7846,475=>8281,500=>8716,525=>9150,550=>9585,575=>10019,600=>10453,625=>10887,650=>11320,
675=>11754,700=>12187,725=>12620,750=>13053,775=>13485,800=>13917,825=>14349,850=>14781,875=>15212,900=>15643,925=>16074,950=>16505,975=>16935,
1000=>17365,1025=>17794,1050=>18224,1075=>18652,1100=>19081,1125=>19509,1150=>19937,1175=>20364,1200=>20791,1225=>21218,1250=>21644,
1275=>22070,1300=>22495,1325=>22920,1350=>23345,1375=>23769,1400=>24192,1425=>24615,1450=>25038,1475=>25460,1500=>25882,1525=>26303,
1550=>26724,1575=>27144,1600=>27564,1625=>27983,1650=>28402,1675=>28820,1700=>29237,1725=>29654,1750=>30071,1775=>30486,1800=>30902,
1825=>31316,1850=>31730,1875=>32144,1900=>32557,1925=>32969,1950=>33381,1975=>33792,2000=>34202,2025=>34612,2050=>35021,2075=>35429,
2100=>35837,2125=>36244,2150=>36650,2175=>37056,2200=>37461,2225=>37865,2250=>38268,2275=>38671,2300=>39073,2325=>39474,2350=>39875,
2375=>40275,2400=>40674,2425=>41072,2450=>41469,2475=>41866,2500=>42262,2525=>42657,2550=>43051,2575=>43445,2600=>43837,2625=>44229,
2650=>44620,2675=>45010,2700=>45399,2725=>45787,2750=>46175,2775=>46561,2800=>46947,2825=>47332,2850=>47716,2875=>48099,2900=>48481,
2925=>48862,2950=>49242,2975=>49622,3000=>50000,3025=>50377,3050=>50754,3075=>51129,3100=>51504,3125=>51877,3150=>52250,3175=>52621,
3200=>52992,3225=>53361,3250=>53730,3275=>54097,3300=>54464,3325=>54829,3350=>55194,3375=>55557,3400=>55919,3425=>56280,3450=>56641,
3475=>57000,3500=>57358,3525=>57715,3550=>58070,3575=>58425,3600=>58779,3625=>59131,3650=>59482,3675=>59832,3700=>60182,3725=>60529,
3750=>60876,3775=>61222,3800=>61566,3825=>61909,3850=>62251,3875=>62592,3900=>62932,3925=>63271,3950=>63608,3975=>63944,4000=>64279,
4025=>64612,4050=>64945,4075=>65276,4100=>65606,4125=>65935,4150=>66262,4175=>66588,4200=>66913,4225=>67237,4250=>67559,4275=>67880,
4300=>68200,4325=>68518,4350=>68835,4375=>69151,4400=>69466,4425=>69779,4450=>70091,4475=>70401,4500=>70711,4525=>71019,4550=>71325,
4575=>71630,4600=>71934,4625=>72236,4650=>72537,4675=>72837,4700=>73135,4725=>73432,4750=>73728,4775=>74022,4800=>74314,4825=>74606,
4850=>74896,4875=>75184,4900=>75471,4925=>75756,4950=>76041,4975=>76323,5000=>76604,5025=>76884,5050=>77162,5075=>77439,5100=>77715,
5125=>77988,5150=>78261,5175=>78532,5200=>78801,5225=>79069,5250=>79335,5275=>79600,5300=>79864,5325=>80125,5350=>80386,5375=>80644,
5400=>80902,5425=>81157,5450=>81412,5475=>81664,5500=>81915,5525=>82165,5550=>82413,5575=>82659,5600=>82904,5625=>83147,5650=>83389,
5675=>83629,5700=>83867,5725=>84104,5750=>84339,5775=>84573,5800=>84805,5825=>85035,5850=>85264,5875=>85491,5900=>85717,5925=>85941,
5950=>86163,5975=>86384,6000=>86603,6025=>86820,6050=>87036,6075=>87250,6100=>87462,6125=>87673,6150=>87882,6175=>88089,6200=>88295,
6225=>88499,6250=>88701,6275=>88902,6300=>89101,6325=>89298,6350=>89493,6375=>89687,6400=>89879,6425=>90070,6450=>90259,6475=>90446,
6500=>90631,6525=>90814,6550=>90996,6575=>91176,6600=>91355,6625=>91531,6650=>91706,6675=>91879,6700=>92050,6725=>92220,6750=>92388,
6775=>92554,6800=>92718,6825=>92881,6850=>93042,6875=>93201,6900=>93358,6925=>93514,6950=>93667,6975=>93819,7000=>93969,7025=>94118,
7050=>94264,7075=>94409,7100=>94552,7125=>94693,7150=>94832,7175=>94970,7200=>95106,7225=>95240,7250=>95372,7275=>95502,7300=>95630,
7325=>95757,7350=>95882,7375=>96005,7400=>96126,7425=>96246,7450=>96363,7475=>96479,7500=>96593,7525=>96705,7550=>96815,7575=>96923,
7600=>97030,7625=>97134,7650=>97237,7675=>97338,7700=>97437,7725=>97534,7750=>97630,7775=>97723,7800=>97815,7825=>97905,7850=>97992,
7875=>98079,7900=>98163,7925=>98245,7950=>98325,7975=>98404,8000=>98481,8025=>98556,8050=>98629,8075=>98700,8100=>98769,8125=>98836,
8150=>98902,8175=>98965,8200=>99027,8225=>99087,8250=>99144,8275=>99200,8300=>99255,8325=>99307,8350=>99357,8375=>99406,8400=>99452,
8425=>99497,8450=>99540,8475=>99580,8500=>99619,8525=>99657,8550=>99692,8575=>99725,8600=>99756,8625=>99786,8650=>99813,8675=>99839,
8700=>99863,8725=>99885,8750=>99905,8775=>99923,8800=>99939,8825=>99953,8850=>99966,8875=>99976,8900=>99985,8925=>99991,8950=>99996,
8975=>99999,9000=>100000);
function sinarccos($value) {
global $table;
$value = (int)($value * 100000);
for ($i = 0; $i < 9000; $i = $i + 25) {
if ($value == $table[$i]) return $table[9000 - $i] / 100000;
if (($value > $table[$i]) AND ($value < $table[$i + 25])) return $table[9000 - $i] / 100000;
}
return 0;
}
а еще помню, что вычислять обратные тригонометрические функции почти никогда нет нужды, особенно, когда от результата потом берется другая ф-я. ведь все ф-ии одного и того же угла выражаются друг через друга и имея одно значение можно получить без тригонометрии любое другое. тут главное не помнить формулы, а помнить определения ф-й, что это отношения сторон прямоугольного треугольника.
