js-рандом с определённой вероятностью
<span id="q"></span>
<input type="button" onClick="Ok()" value="Ok" >
function Ok()
{
var txt=[1,2,3,4]
k= (txt[Math.floor(Math.random()*txt.length)]);
{
document.getElementById("q").innerHTML=k;
}}
Вот ещё один вариант рандома:
q=Math.floor(Math.random()*100)+1;
где:
100 - количество возможных вариантов
1 - стартовый номер
Есть функция, которая при нажатии на кнопку Ok в id=q, выдаст случайное число из массива. Как сделать, чтоб числа из массива выпадали с определённой вероятностью т.е. 1-30% 2-30% 3-30% 4-10% Если нажмем 10раз на кнопку в нас должно числа 1,2,3 -выпасть 3 раза (3по3) и число 4 - 1раз ? |
|
Цитата:
var k = Math.random(); if(k > .9) k = 4; else if(k > .6) k = 3; else if(k > .3) k = 2; else k = 1; |
рони,
8и 10 строчка {} ставлю потому что иногда не срабатывало ,а с этим работает :),я на каком-то сайте это нашёл.вот использую |
рони,
Спасибо |
Цитата:
Забудь о таком мистическом подходе. Программирование это логика. Если что-то работает или не работает - оно делает это по конкретной причине. Никогда не используй того что не понимаешь хотябы поверхностно. |
Aetae,
Смотри вот функция по теории начинается и заканчивается function название() {} - так? Этот вариант не работал:
function Ok()
{
var a=promt("сообщ","");
document.getElementById('16').innerHTML=a;
}
Вот этот вариант работал!
function Ok()
{
var a=promt("сообщ","");
{
document.getElementById('16').innerHTML=a;
}}
|
Aetae,
В чем проблема? |
Aetae,
поверхностно js я понимаю,а эти скорбки это ошибка, того кто писал материал,который изначально мною изучался Когда человек,он что-то изучает он ищет,читает,вникает изучает - то,что он находит считает правильным ,этот материал берётся за основу... Вы б лучше подсказали,что-то чтоб подобные ошибки не допускать Ошибки всем свойственно допускать,на ошибках мы и учимся - опытные программисты их допускают,а я только учусь :) Вы говорите программирование логика - логика присутствует, но главное точность и правильность Сервер,он ж код выполняет точно,а не по логике, хочу выполню,хочу не выполню |
Aetae,
как-то ушли от темы топа Тема: рандом из массива и определённой вероятностью. |
Цитата:
что не так? если вы снова о том же рандом с определённой вероятностью |
Цитата:
|
Brick,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<ol>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
<script>
function fn(c) {
var a = c.slice(0);
return function() {
var b = Math.floor(Math.random() * a.length);
b = a.splice(b, 1)[0];
a.length || (a = c.slice(0));
return b
}
};
var arr = [1,1,1,2,2,2,3,3,3,4];
var rnd = fn(arr);
//тестирование
var li = document.querySelectorAll("li");
for (var i = 0; i < 10; i++) {
var q = rnd();
li[q - 1].innerHTML += q
document.write(i + '=>' + q + '<br>')
}
</script>
</body>
</html>
|
:-E твое лицо
когда поспорил с пацанами что выучу JS! не открывая ни одного талмуда!!! |
| Часовой пояс GMT +3, время: 20:27. |