Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   js-рандом с определённой вероятностью (https://javascript.ru/forum/css-html/74921-js-random-s-opredeljonnojj-veroyatnostyu.html)

Brick 16.08.2018 19:32

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раз
?

рони 16.08.2018 19:47

Brick,
зачем вы ставите {} где попало?
и поставьте в избранное http://jsbeautifier.org/

рони 16.08.2018 19:53

Цитата:

Сообщение от Brick
Как сделать, чтоб числа из массива выпадали с определённой вероятностью

var k = Math.random();
if(k > .9) k = 4;
else if(k > .6) k = 3;
else if(k > .3) k = 2;
else k = 1;

Brick 16.08.2018 20:44

рони,
8и 10 строчка {} ставлю потому что иногда не срабатывало ,а с этим работает :),я на каком-то сайте это нашёл.вот использую

Brick 16.08.2018 20:45

рони,
Спасибо

Aetae 16.08.2018 20:52

Цитата:

Сообщение от Brick (Сообщение 492925)
рони,
8и 10 строчка {} ставлю потому что иногда не срабатывало ,а с этим работает :),я на каком-то сайте это нашёл.вот использую

*facepalm.jpg*
Забудь о таком мистическом подходе. Программирование это логика. Если что-то работает или не работает - оно делает это по конкретной причине. Никогда не используй того что не понимаешь хотябы поверхностно.

Brick 16.08.2018 21:04

Aetae,
Смотри вот функция по теории начинается и заканчивается function название() {} - так?
Этот вариант не работал:
function Ok()
{
var a=promt("сообщ","");
document.getElementById('16').innerHTML=a;
}

Вот этот вариант работал!
function Ok()
{
var a=promt("сообщ","");
{
document.getElementById('16').innerHTML=a;
}}

Brick 16.08.2018 21:04

Aetae,
В чем проблема?

Brick 16.08.2018 21:13

Aetae,
поверхностно js я понимаю,а эти скорбки это ошибка, того кто писал материал,который изначально мною изучался
Когда человек,он что-то изучает он ищет,читает,вникает изучает - то,что он находит считает правильным ,этот материал берётся за основу...
Вы б лучше подсказали,что-то чтоб подобные ошибки не допускать
Ошибки всем свойственно допускать,на ошибках мы и учимся - опытные программисты их допускают,а я только учусь :)

Вы говорите программирование логика - логика присутствует, но главное точность и правильность
Сервер,он ж код выполняет точно,а не по логике, хочу выполню,хочу не выполню

Brick 16.08.2018 21:14

Aetae,
как-то ушли от темы топа
Тема: рандом из массива и определённой вероятностью.


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