Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB58.6120
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 09.03.2014, 21:30   #1
sspy
главный злодей гофака
 
Аватар для sspy
 
Регистрация: 18.06.2007
Сообщений: 5,307
Бабло: $879413
По умолчанию математики есть ? нужна формула

есть число например длинною в 10 цифр. нужна формула в которой задаётся начальное и конечное число и на основе первоначального числа генерится другое постоянное число в заданных пределах.
sspy вне форума  
Старый 09.03.2014, 22:47   #2
spasibo
banned
 
Регистрация: 14.04.2013
Сообщений: 127
Бабло: $26265
По умолчанию

http://www.php.net/manual/ru/function.srand.php
http://www.php.net/manual/ru/function.mt-srand.php
не подойдет?

для других языков наверняка есть аналоги srand.
__________________
не за что
spasibo вне форума  
Старый 10.03.2014, 00:38   #3
sspy
главный злодей гофака
 
Аватар для sspy
 
Регистрация: 18.06.2007
Сообщений: 5,307
Бабло: $879413
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от spasibo Посмотреть сообщение
не то. нужен не рэндом, а вычисления
sspy вне форума  
Старый 10.03.2014, 00:49   #4
sad_taliban
Senior Member
 
Аватар для sad_taliban
 
Регистрация: 03.08.2011
Сообщений: 773
Бабло: $263625
По умолчанию

объясни подробнее что хочешь, так не очень понятно что тебе нужно.
sad_taliban вне форума  
Старый 10.03.2014, 01:26   #5
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,382
Бабло: $470735
По умолчанию

srand($num) + $min + rand(0, $max-$min)
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 10.03.2014, 01:58   #6
sspy
главный злодей гофака
 
Аватар для sspy
 
Регистрация: 18.06.2007
Сообщений: 5,307
Бабло: $879413
ТС -->
автор темы ТС По умолчанию

spasibo, chesser, оказалось то, что нужно, спасибо
sspy вне форума  
Старый 11.03.2014, 21:28   #7
lorien
Senior Member
 
Аватар для lorien
 
Регистрация: 18.05.2009
Сообщений: 879
Бабло: $177835
Отправить сообщение для lorien с помощью Skype™
По умолчанию

А вот ещё вариант, без использования srand

Идея такая. Значит есть у нас 10-значное число. Вычисляем длину диапазона между мин. разрешённых числом и макс. разрешённым числом. Далее делим нацело 10-значное число на длину диапазона, получаем результат деления и остаток. Этот остаток и будет смещением внутри диапазона.

Например:
- число 17
- мин. число диапазона 3
- макс число диапазона 7

Длина диапазона:5.
Делим 17 на 5. Будет 3 и остаток 2 т.е. смещение внутри диапазона будет равно 2
Результа: мин. число + смещение = 3 +2 = 5


Вариант со srand лучше т.к. там любое изменение исходного числа будет порождать новый алгоритм генерации случайных чисел, а в моём варианте например для исходных чисел различающихся на единицу, результаты также будут различаться на единицу. Хотя можно считать это фичей
lorien вне форума  
Старый 12.03.2014, 00:22   #8
sspy
главный злодей гофака
 
Аватар для sspy
 
Регистрация: 18.06.2007
Сообщений: 5,307
Бабло: $879413
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от lorien Посмотреть сообщение
А вот ещё вариант, без использования srand
тоже чёткий вариант
sspy вне форума  
Старый 12.03.2014, 15:29   #9
lorien
Senior Member
 
Аватар для lorien
 
Регистрация: 18.05.2009
Сообщений: 879
Бабло: $177835
Отправить сообщение для lorien с помощью Skype™
По умолчанию

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