[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с Вызовом функции
Millenium
Пишу функцию которая получает переменную $L
смысл функции в том, что она ,получив переменную L, создает рандомно еще одну $D и если $D%$L ==1 возращала бы D
  
function Prosto($L)
{
$d=rand(1,$L-1);
for($i=$d;$i<=$d-1;$i--)
{
if ($i%$L==1) return $i;
}

}


при вызыве не работает:
echo "eee" .Prosto($L). "<br>\n";
что исправить? нужно чтоб возразало одно число, которое получилось приделении по модулю чисел $D и $L



Спустя 6 минут, 37 секунд (23.11.2011 - 17:02) redreem написал(а):
а если $D%$L !=1, тогда что возвращать?
и цикл тут помоему точно нафиг не нужен. простое сравнение и все.

Спустя 57 секунд (23.11.2011 - 17:03) redreem написал(а):

function Prosto($L)
{
$d=rand(1,$L-1);
if ($d%$L==1) return $d; else return //что-то еще


}

Спустя 37 секунд (23.11.2011 - 17:04) Millenium написал(а):
redreem
вот именно , что мне нужно возратить одно число которое при делению по модулю давала 1 а остальное не жно, как это сделать?

Спустя 4 минуты, 47 секунд (23.11.2011 - 17:08) redreem написал(а):
function Prosto($L)	{
$d=rand(1,$L-1);

for($i=$d;$i>=1;$i--) {
if ($i%$L==1) return $i;
}
}

Спустя 5 минут, 54 секунды (23.11.2011 - 17:14) Millenium написал(а):
redreem
в строчке
if ($i%$L==1) return $i;

Warning: Division by zero

Спустя 1 минута, 39 секунд (23.11.2011 - 17:16) m4a1fox написал(а):
А что передаете? $L чему равна?

Спустя 11 секунд (23.11.2011 - 17:16) redreem написал(а):
ну так не передавай функции нуль.

Спустя 18 секунд (23.11.2011 - 17:16) Millenium написал(а):
redreem
и выдает всегда 1
вызываю вот так
echo "eee" .Prosto($L). "<br>\n";
пишет eee1

Спустя 33 секунды (23.11.2011 - 17:17) Millenium написал(а):
redreem
само собой ноль не даю

Спустя 1 минута, 41 секунда (23.11.2011 - 17:19) Millenium написал(а):
m4a1fox
рандомное число вводимое с клавы

Спустя 3 минуты, 30 секунд (23.11.2011 - 17:22) m4a1fox написал(а):
Цитата
Операция вычисления остатка от деления "%" работает только с целыми числами, так что применение ее к дробным может привести к нежелательному результату. Остаток $a % $b будет негативным, для негативных значений $a.

Спустя 4 минуты, 20 секунд (23.11.2011 - 17:26) Millenium написал(а):
m4a1fox
о дробях и других чисел речи не идет, ввожу целые числа, Натуральные, т. е 1 2 3 4 и тд

Спустя 16 секунд (23.11.2011 - 17:27) m4a1fox написал(а):
ИМХО! Кажется нарушена логика. Например я ввиду 342523452345. Дальше. Выбирается рандомное число. Например 2. Дальше. Если 2 больше 1 проверяем 2 делим по модулю на 342523452345. Тут ну ни как единицы не получится ни при каких условиях! В общем это конечно ИМХО! Если найдете решения, напишите - интересно!

Спустя 36 секунд (23.11.2011 - 17:27) m4a1fox написал(а):
Millenium
Цитата
о дробях и других чисел речи не идет, ввожу целые числа, Натуральные, т. е 1 2 3 4 и тд

Да да. Я уже понял! Чет затупил! Sorry!

Спустя 1 минута, 48 секунд (23.11.2011 - 17:29) redreem написал(а):
вот так наверно надо:

if ($L%$i==1) return $i;


Спустя 3 минуты, 51 секунда (23.11.2011 - 17:33) m4a1fox написал(а):
redreem
Точно! Я ж говорил....в логике трабла...

Спустя 1 минута, 9 секунд (23.11.2011 - 17:34) Millenium написал(а):
<form method="post" action="">       
<
b><h3><center>Шифр RSA</center></h3></b><br><br>
1) Введите Два простых числа P и Q- <input name="P" type="text" maxlength="2" size="3" value="">
и <input name="Q" type="text" maxlength="2" size="3" value=""><br><br>
<
input type=submit value=" Обана! "> </form>

<
hr align="center" color="#000000" size="1" />
<
body bgcolor="#CCCCCC">
<?php

if ($_SERVER["REQUEST_METHOD"] == "POST")
{ $P = (int)trim($_POST["P"]);
$Q = (int)trim($_POST["Q"]);

if($P and $Q )
{ $N=$P*$Q;
echo "Вычисляем N =" .$N. "<br>\n";
$L=(($P-1)*($Q-1));
echo "Вычисляем Ф =" .$L. "<br>\n";
echo "eee" .Prosto($L). "<br>\n";
}

}


function Prosto($L)
{
$d=rand(1,$L-1);
for($i=$d;$i>=1;$i--)
{ if ($L%$i==1) return $i;
}



}

?>

я правильно передаю переменную $ L в функцию?
на экране она выводится а в функцию попадает?

Спустя 49 минут, 30 секунд (23.11.2011 - 18:24) Winston написал(а):

 ! 

М
Если не дашь теме более содержательное название, будет закрыто !
Winston

Спустя 6 минут, 11 секунд (23.11.2011 - 18:30) Millenium написал(а):
Winston
Как поменять название темы?

Спустя 2 минуты, 39 секунд (23.11.2011 - 18:32) Winston написал(а):
Отредактируй первое сообщение темы.

Спустя 4 минуты, 32 секунды (23.11.2011 - 18:37) Millenium написал(а):
Winston
ок, сорри
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.