1. PHP / Говнокод #3520

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    <?php
        {
    		$iter = 10000; //количество итераций
    		$Xmax = array(1,1); //верхние границы
    		$Xmin = array(-1,-1); //нижние границы
    		$F    = 'cos($x[0])*cos($x[1])'; //подынтегральное выражение
    		$F2   = '$x[0]+5-sin($x[1])>=2'; //выражение, определяющее границы функции (если такового нет, впишите 0)
        }
    
        $U    = count($Xmin); //кратность интеграла
        $Xint = array();
        $x    = array();
        $SumH = 0;
    
        for ($i = 0; $i <= $U; $i++)
    		{
    			$Xint[$i] = $Xmax[$i] - $Xmin[$i];
    		}
        for ($j = 1; $j <= $iter; $j++)
    		{
    			for ($i = 0; $i <= $U; $i++)
    				{
    					$x[$i] = $Xmin[$i] + lcg_value() * $Xint[$i];
    				}
    			eval ("\$F1 = $F2;"); //левая часть выражения, определяющего границы функции  
    			if ($F1 !== 0) 
    				{
    					$InInt = false;
    					if ($F1) $InInt = true;
    					if (!$InInt) continue;
    				}
    			eval ("\$F3 = $F;");
    			$SumH += abs($F3);
    		}
    
        $rez = 1;
        for ($i = 0; $i <= $U-1; $i++)
    		{
    			$rez = $rez*$Xint[$i];
    		}
        $rez = ($SumH*$rez)/ $iter;
        echo ("Answer: $rez"); 
     ?>

    Программа, считающая интегралы

    Запостил: TERAB1T, 21 Июня 2010

    Комментарии (38) RSS

    Добавить комментарий