Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Случайное число. (https://javascript.ru/forum/misc/4850-sluchajjnoe-chislo.html)

nazarov1947 24.08.2009 19:50

Случайное число.
 
Помогите все поисковики облазил.
Мне надо вот что, допустим есть три строки:
Всего материала: а
Лес: b
Металл: c
а должно быть равно сумме b+c, и все числа должны генерироваться случайно в определенном диапазоне чисел (например а от 100 до 1500). И еще желательно, чтобы с, всегда было больше b
И расталкуйте где надо тыкать чтобы изменить диапазон этих самых чисел.:cray:

JSprog 24.08.2009 20:00

<script language="javascript" type="text/javascript">
<!-- 
function getRandom300(m,n){
return Math.floor(Math.random()*(n-m+1))+m;
}
function getRandom6(){
n6=getRandom300(100000,999999);
document.write(n6);
}
//-->
getRandom6()
</script>

Изменять надо тут
n6=getRandom300(100000,999999);
первое число от какого второе до какого

nazarov1947 24.08.2009 20:17

А как привязать сюда лес, металл и т.д.:victory:

JSprog 24.08.2009 20:33

Я написал но что-то не работает:(
<html>
<body>
 <script language="javascript" type="text/javascript">
<!-- 
function getRandom300(m,n){
return Math.floor(Math.random()*(n-m+1))+m;
}
function getRandom6(){
n6=getRandom300(100000,999999);
sla1=document.getElementById(sl1).value=n6;
return sla1;
sla2=document.getElementById(sl2).value=n6;
return sla2;
summa=sla1+sla2;
document.getElementById(sum).value=summa;
}
getRandom6()
//-->
</script>
Всего:<input type=text id=sum>
Лес:<input type=text id=sl1>
Металл:<input type=text id=sl2>
</body>
</html>

nazarov1947 24.08.2009 20:52

И вместо цифр выводится поле для ввода.:blink:

Gozar 24.08.2009 20:56

function Random(){
var m = 100;
var n = 1500;
var num = Math.floor( Math.random() * (n - m + 1) ) + m;
return num;
}


function Loh(){
	var d = 1500 - parseInt(Random());
	if(d < 750){ 
		b = d;
		c = 1500 - b;
	}
	else{
		c = d;
		b = 1500 - c;
	}
	alert(c+b);
alert(c);

}


Не знаю чем это поможет, но вот решение, хотя можно и поизящней, но право лень. Тыкайте на клавиши чтобы изменять цифры 100 и 1500

nazarov1947 24.08.2009 20:56

Мне не надо их вводит, мне надо поставить это на сайт, чтобы каждый пользователь видел разные цифры напротив

nazarov1947 24.08.2009 21:00

Цитата:

Сообщение от Gozar (Сообщение 28159)
function Loh(){

:(

Gozar 24.08.2009 21:01

и в чём заключается Ваша проблема?
решение я написал, а вот что Вас не устраивает я не понимаю.
Прошу прощение, но название случайно затясалось :)

О кажется до меня дошло, нужна captcha.

JSprog 24.08.2009 21:09

В этом поле для ввода доллжны появитса цифры
Завтра сделаю спать хочу

nazarov1947 24.08.2009 21:09

Ага а также это
Код:

>> require 'digest/bubblebabble'
=> true
>> Digest.bubblebabble(Digest::SHA1::hexdigest("random string")[8..12])
=> "xesik-fymak-gunax"

А если серьезно?

nazarov1947 24.08.2009 21:13

JSprog,
Спасибо.

Gozar 24.08.2009 21:20

Серьезно не могу, вопрос очень не серьезный.
Если это нужно для защиты, то это не защита вообще, а если для чего-то другого, то я уже ответил.

nazarov1947 24.08.2009 21:27

Нет мне это надо, причем очень сильно.
чтоб было три строки третья плюс вторая равнялась первой, и числа были бы разные.
Могу сказать по другому есть сайт там статистика.
онлайн всего:
пользователей:
гостей:
Вот мне и надо допустим чтоб генерировалось число онлайн всего, ну и соответственно остальных полей, без ввода каких либо данных пользователями, а только мной. JSprog правильно понял, но там у него появляются поля вместо цифр.

Kolyaj 24.08.2009 21:32

А зачем такая статистика?

nazarov1947 24.08.2009 21:38

Цитата:

Сообщение от Kolyaj (Сообщение 28177)
А зачем такая статистика?

Это я в качестве примера.

Gozar 24.08.2009 23:43

В общем вот докорябанный пример, использовать код или нет Ваше дело, но по мне так лучше разобраться самому, чем копипастить корявый ответ с форума:
<html>
<head>
<script>
function Random(m,n){
	var num = Math.floor( Math.random() * (n - m + 1) ) + m;
	return num;
}
 
 
function Lodir(m,n){
	var a,b,c;	
	var m = m || 100;
	var n = n || 1500;
	var d = n - parseInt(Random(m,n));
	var d2 = Math.floor(n / 2);
    if(d <= d2){ 
        b = d;
        c = n - b;
    }
    else{
        c = d;
        b = n - c;
    }
	a = b + c;
	document.getElementById('a').innerHTML = a;
	document.getElementById('b').innerHTML = b;
	document.getElementById('c').innerHTML = c;
}
</script>
</head>
<body onload="Lodir(300,7000)">
a:<span id="a"></span><br>
b:<span id="b"></span><br>
c:<span id="c"></span><br>
</body>
</html>


PS: если написать просто <body onload="Lodir()"> не уточняя диапазон, то функция будет брать диапазон от 100 до 1500

Но все равно не пойму зачем такое нужно, если не секрет можно ответить честно, для чего такая ерунда нужна?

JSprog 25.08.2009 11:58

<html>
<body> 
Всего:<b id=summa></b><br>
Железо:<b id=b1></b><br>
Дерево:<b id=b2></b><br>
 <script language="javascript" type="text/javascript">
function getRandom300(m,n){
return Math.floor(Math.random()*(n-m+1))+m;
}
function getRandom6(){
n1=getRandom300(1,10);
n2=getRandom300(1,10);
document.getElementById('b1').innerHTML= n1
document.getElementById('b2').innerHTML= n2
sum=n1+n2
document.getElementById('summa').innerHTML= sum
}
getRandom6()
</script>
</body>
</html>

JSprog 25.08.2009 14:34

Ну что вы как маленький, сделайте диапозон у С больше.


Часовой пояс GMT +3, время: 06:36.