Что нового

Random(1, 1, 1) = 0

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Yashied [?]
Kaster, если честно, то мне все равно, что будет выдавать функция при $Min = $Max (0 или $Max), но если это не является случайным числом, то флаг @error обязательно должен быть установлен (опять же, мне не важно 1, 2 или 65535). IMHO это правильно.
вот ведь интересно получается. а мне все равно, что там во флагах, для меня более важно что выдает функция, в том числе при $min = $max, и по всей логике, там должно быть $min (ну или $max ;D )
Garrett [?]
Тут должно быть всё чётко!
просто, а что нечеткого в том, что функция ведет себя так же как и обычно, только с чуток расширенной областью определения. не $min < $max, как щас, а $min <= $max
 
Автор
timsky

timsky

Осваивающий
Сообщения
93
Репутация
28
SyDr [?]
timsky, а проверка, меньше ли $b, чем $a есть где-то?
В моем скрипте? Однозначно будет, просто в очередной раз столкнувшись с этим решил поднять вопрос.

Kaster
+100500 ;D

:shok:ff:
Garrett [?]
Иначе "Терминатор" станет явью
Терминатор и так скоро станет явью, только намного более страшный и намного раньше, чем кажется:
http://www.3dnews.ru/news/iskusstvennie_mishtsi_na_osnove_nanotrubok/
http://www.3dnews.ru/news/nanotabletki_nauchilis_dumat/
Смастерят дюжину таких чебураторов лет через 20-30 и начнется как в японских мультиках
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Вы забыли, что $Min и $Max не обязательно должны быть целыми числами. Следующий код не будет работать. Я думаю простой проверкой тут не обойтись.

Код:
$A = 0.0004
$B = 0.02
$C = 0.000016
$D = 2

$Min = $A * $B ; $Min = 0.000008
$Max = $C / $D ; $Max = 0.000008

If $Min = $Max Then
	$Result = $Max
Else
	$Result = Random($Min, $Max)
EndIf

ConsoleWrite($Result & @CR)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Kaster [?]
просто, а что нечеткого в том, что функция ведет себя так же как и обычно, только с чуток расширенной областью определения. не $min < $max, как щас, а $min <= $max
Я уже высказывал свои мысли по этому поводу :smile:
Я не разработчик Autoit, я пользователь. Какую функцию нам дадут, такой и будем пользоваться. :smile:

OffTopic:
timsky
Так вот чтобы они нас не слопали на завтрак, им нужны чёткие директивы! :smile: Не правила, где есть исключения, а именно директивы.
 
Автор
timsky

timsky

Осваивающий
Сообщения
93
Репутация
28
Yashied [?]
Вы забыли, что $Min и $Max не обязательно должны быть целыми числами.
Прекрасно помню. Как раз о целых числах и идет речь. Там ведь флаг = 1
 

SyDr

Сидра
Сообщения
651
Репутация
158
Yashied [?]
Вы забыли, что $Min и $Max не обязательно должны быть целыми числами. Следующий код не будет работать. Я думаю простой проверкой тут не обойтись
Он не работает потому, что у вас $Min больше, чем $Max. :smile:
timsky [?]
Прекрасно помню. Как раз о целых числах и идет речь. Там ведь флаг = 1
Даже с этим флагом функция может принимать вещественные числа. Результат будет такой же, как и при использовании Floor для округления параметров.
[?]
В моем скрипте? Однозначно будет, просто в очередной раз столкнувшись с этим решил поднять вопрос.
Ну так и проверять тогда не меньше ли, а меньше либо равно.

Кончено, если бы в этом случае возвращался не 0, а нужное число - было бы очень удобно. Однако, это замедляет работу функции. А я бы, например, не хотел такого.
Если у меня Max заведомо больше Min, зачем мне терять время работы программы только из-за того, что кому-то захотелось сэкономить пару строк кода, не выйграв при этом ничего в производительности?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
SyDr [?]
Однако, это замедляет работу функции
ты знаешь как работает функция Random в AutoIt? ;)
мне вот не кажется, что изменение ограничения для пределов замедли выпонение функции. на примере аналогичной функции для других ЯП


Добавлено:
Сообщение автоматически объединено:

надо разобраться по нормальному с либой BigNum.au3, можно в принципе реализовать вихрь Мерсенна на AutoIt. и поставить там такие ограничения, какие хочешь ;D
 

SyDr

Сидра
Сообщения
651
Репутация
158
Kaster [?]
ты знаешь как работает функция Random в AutoIt?
wink.gif
Нет, не знаю. Но мне кажется, что если функция в данном случае работает не так, как хочется, то это не оттого, что там есть лишняя проверка. Если бы это не влияло на скорость работы функции, то тогда бы пошли на встречу и всё.
 
Верх