допустим
в зале 76 человек = 100%
60 % проголосовало правильно = (0.76*60) = 45. 6
25 % проголосовало неправильно = (0.76*25) = 19
10 % проголосовало неправильно = (0.76*10) = 7.6
5% проголосовало неправильно = (0.76*5) = 3.8
как это организовать случайным образом?
Код мне не нужен, только сам алгоритм, что от чего отнимать чтобы все проценты были логичными, т.е.
так чтобы не было 1 ответ 70%, 2 ответ 50% и т.д. (я надеюсь вы поняли о чем я)
язык программирования по сути любой
Спустя 20 минут, 18 секунд (5.08.2011 - 08:47) T1grOK написал(а):
Берешь изначальное значение, то есть 100. Генеришь случайное число в диапазоне от 0 до 100. Отнимаешь от 100 случайно сгенерированное число. Генерируешь случайное число в диапазоне от 0 до полученной границы(100-случ. число). И т.д. Количество людей по моему и не нужно, хотя если хотите можете отталкиваться от количества людей, а не от процентов.
Спустя 3 минуты, 5 секунд (5.08.2011 - 08:50) T1grOK написал(а):
Еще бы неплохо внести определение вероятности правильного ответа аудиторией, то есть чем легче вопрос, тем больше вероятность, что большинство проголосует за правильный вариант ответа и наоборот.
Спустя 1 минута, 35 секунд (5.08.2011 - 08:51) Stasonix написал(а):
Цитата (T1grOK @ 5.08.2011 - 05:50) |
Еще бы неплохо внести определение вероятности правильного ответа аудиторией, то есть чем легче вопрос, тем больше вероятность, что большинство проголосует за правильный вариант ответа и наоборот. |
вероятность и так присутствует, это для меня оказалось легче прилепить чем сам процесс расстановки %
Спустя 5 минут, 21 секунда (5.08.2011 - 08:57) Stasonix написал(а):
Цитата (T1grOK @ 5.08.2011 - 05:47) |
Берешь изначальное значение, то есть 100. Генеришь случайное число в диапазоне от 0 до 100. Отнимаешь от 100 случайно сгенерированное число. Генерируешь случайное число в диапазоне от 0 до полученной границы(100-случ. число). И т.д. Количество людей по моему и не нужно, хотя если хотите можете отталкиваться от количества людей, а не от процентов. |
судя по твоей логике:
100 = 100%
1 rand (100) = 60
100 - 60 = 40
2 rand (0,40) = 22
40 - 22 = 18
3 rand(0,18) = 10
18-10 = 8
4 rand(0,8) = 5
ответили 60+22+10+5 = 97
получается ни все ответили...
Спустя 13 минут, 18 секунд (5.08.2011 - 09:10) T1grOK написал(а):
Для последнего варианта ответа не надо генерировать случайное число, просто берем остаток.
Спустя 5 минут, 38 секунд (5.08.2011 - 09:16) Stasonix написал(а):
Цитата (T1grOK @ 5.08.2011 - 06:10) |
Для последнего варианта ответа не надо генерировать случайное число, просто берем остаток. |
во! вот оказывается что я пропустил, я сначала так и делал как вы сказали, но видишь 1 ошибка сбила меня с толку.
Спустя 20 минут, 55 секунд (5.08.2011 - 09:36) alive написал(а):
По хорошему, в условие нужно добавить какой процент правильных ответов мы ожидаем от зала, все зависит от сложности вопроса. То есть мы можем ограничить снизу число знающих правильный ответ, тогда количество правильных ответов будет определятся этим числом плюс случайный голос. Ну а функцию распределения числа знающих можно менять от сложности вопроса.
Спустя 31 минута, 21 секунда (5.08.2011 - 10:08) Stasonix написал(а):
Цитата (alive @ 5.08.2011 - 06:36) |
По хорошему, в условие нужно добавить какой процент правильных ответов мы ожидаем от зала, все зависит от сложности вопроса. То есть мы можем ограничить снизу число знающих правильный ответ, тогда количество правильных ответов будет определятся этим числом плюс случайный голос. Ну а функцию распределения числа знающих можно менять от сложности вопроса. |
у меня коэффициент это номер вопроса, а сложность = 5, т.е если 2-й вопрос, то сложность его увеличивается на 5
итого:
$('#pomzal').click(function(){
var r_ans = x[ff].prav;
sluc = randomFromTo(1,76);
if (sluc>(ff+1)*5)
{
var ot_1 = sluc;
os = 76-ot_1;
ot_2 = randomFromTo(0,os);
os = 76-ot_2;
ot_3 = randomFromTo(0,os);
ot_4 = os-ot_3;
alert("правильный ответ 1: "+ot_1+"%"+"\n Неправильный ответ 2: "+ot_2+"%"+"\n Неправильный ответ 3: "+ot_3+"%"+"\n Неправильный ответ 4: "+ot_4+"%");
}
});
Спустя 4 минуты, 50 секунд (5.08.2011 - 10:13) Stasonix написал(а):
это я хочу сказать что не работает так как мне нужно, не получается уравновесить
Спустя 1 час, 55 минут, 14 секунд (5.08.2011 - 12:08) alive написал(а):
нужно сначала определить количество знающих правильный ответ. Количество правильных ответов в целом = Число знающих + 25%(76 - Число знающих) + нормальное распределение.
Где, к примеру число знающих правильный ответ, обратно пропорционален сложности вопроса,
а для нормального распределения подобрать коэффициенты в принципе не сложно, но можно и обойтись случайным числом диапазона [-z, z]
например, количество правильных ответов на первый вопрос = 68 + 2 +/- 1, т.е. 69,70 или 71.
А для второго вопроса берешь второе число, поменьше.
Где, к примеру число знающих правильный ответ, обратно пропорционален сложности вопроса,
а для нормального распределения подобрать коэффициенты в принципе не сложно, но можно и обойтись случайным числом диапазона [-z, z]
например, количество правильных ответов на первый вопрос = 68 + 2 +/- 1, т.е. 69,70 или 71.
А для второго вопроса берешь второе число, поменьше.
Спустя 1 час, 23 минуты (5.08.2011 - 13:31) Stasonix написал(а):
не могу и все, то ли день какой-то сегодня то ли я дальше Москвы не вижу, в общем набросал на fiddle, по другому я не знаю уже что и делать:
1 ый вопрос в игре
1 ый вопрос в игре