Три дня потратил на что ты сделать это задание и не справился, сил моих больше нет, помогайте! ( "Напишите скрипт, который будет находить тройки целых чисел, удовлетворяющих теореме Пифагора" понятно что: PHP: $a = 3; $b = 4; $c = sqrt(pow($a,2)+pow($b,2)); но как находить эти "тройки" с помощью PHP я не пойму... самое обидное что эти три дня потратил не обучение php, а на алгебру школьную что в данный момент мне нужно меньше ((
По этому в школе и учат по 10-12 лет. Как находить с ручкой и тетрадкой понятно? --- Добавлено --- Нужно просто проверить три числа x, y, z которые предоставят или программа сама перебором должна их находить? Просто пример проверки, возможно не верный PHP: <?php $x = 3; $y = 4; $z = 5; if ( (pow(3, 2) + pow(4, 2)) == pow(5, 2) ) { echo 'тройка'; }
ничего не получается... просто не пойму, то ли три цикла делать то ли еще чего... буду ждать пока что то поможет с решением, я сделал уже более 200 заданий для начинающих php? может не сам на 100% с подсказками но все задачи разобрал и смогу сделать сам теперь, а тут просто 3.14здец (((
Надо было в нете поискать алгоритмы. Вот, например: --- Добавлено --- С корнем - не годится, там ограничение, что все числа в тройке должны быть натуральными
PHP: echo "<table>"; echo "<tr>"; echo "<th>X</th>"; echo "<th>Y</th>"; echo "<th>Z</th>"; echo "</tr>"; $n = 100; for ($x = 1; $x < $n; $x++) { for ($y = 1; $y < $n; $y++) { for ($z = 1; $z < $n; $z++) { if ($x*$x + $y*$y == $z*$z) { echo "<tr>"; echo "<td>$x</td>"; echo "<td>$y</td>"; echo "<td>$z</td>"; echo "</tr>"; } } } } echo "</table>"; Оставлю ответ для будущих поколений =) Я вокруг решения гулял сутки почти, в if не ту проверку делал с маааленькой ошибкой
да я с этой формулой чуть не чокнулся ))) У Меня там еще осталось задание на квадратные корни, вообще атас, не знаю что с ними делать
@Taktreba твой код генерирует 50% дублей (типа сначала x=3, y=4, а потом y=4, x=3). Это лечится просто PHP: for ($y = 1; $y < $x; $y++) {
PHP: <?php /* Возвращает делители той же чётности */ function devisors($number) { $devisors = $number % 2 === 0 ? [2]: [1]; $n = $devisors[0]; while (($n +=2) < $number) { if ($number % $n === 0) { $devisors[] = $n; } } return $devisors; } ?> <table> <thead> <tr><th>a</th><th>b</th><th>c</th></tr> </thead> <tbody> <?php for ($a = 3; $a < 200; $a++) { $devisors = devisors($a); foreach ($devisors as $d) { $b = ($a ** 2 - $d ** 2) / (2 * $d); $c = ($a ** 2 + $d ** 2) / (2 * $d); echo "<tr><td>$a</td><td>$b</td><td>$c</td></tr>"; } } ?> </tbody> </table> Ничего сложного. Хотя, конечно, поиск делителей можно было и оптимизировать попробовать