Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Высчитывание комиссии (https://javascript.ru/forum/misc/58714-vyschityvanie-komissii.html)

Николай777CR 06.10.2015 19:56

Высчитывание комиссии
 
Здравствуйте. С чего можно начать высчитывание комиссии. Например, есть сайт, на нем рулетка. Прибыль сайта 10% от каждой игры. Какие массивы использовать?

Lemme 06.10.2015 20:04

Здравствуйте, есть балалайка, рядом с ней медведь. На какой подлодке лететь?

Николай777CR 06.10.2015 20:31

С чего можно начать высчитывание комиссии. Например, есть сайт, на нем рулетка. Прибыль сайта 10% от каждой игры.

Lemme 06.10.2015 20:39

с арифметических действий?

Николай777CR 06.10.2015 20:53

ну это да) по поводу кода хотелось бы уточнить, с чего там начать?

caetus 07.10.2015 10:30

с раздела работа

ild 07.10.2015 11:05

Цитата:

Сообщение от Lemme (Сообщение 391031)
Здравствуйте, есть балалайка, рядом с ней медведь. На какой подлодке лететь?

А какой правильный ответ?

Lemme 07.10.2015 14:33

Цитата:

А какой правильный ответ?
Это не загадка, это вопрос ;)

Николай777CR 07.10.2015 19:00

Цитата:

Сообщение от Lemme (Сообщение 391106)
Это не загадка, это вопрос ;)

Ну серьезно) С чего нужно начать код? Лотерея, происходит игра. Один человек положил 60 предметов. Второй игрок 40 предметов. Всего 100 предметов. Шансы 60% на 40%. Сайт, на котором происходит лотерея, получает прибыль, в виде 10%. Победитель получает свои вещи обратно и предметы второго игрока. Как высчитать комиссию сайта(10%) от предметы второго игрока. С чего начать код?

Lemme 07.10.2015 19:12

40 * 0.1 = 4

Николай777CR 07.10.2015 19:24

Цитата:

Сообщение от Lemme (Сообщение 391151)
40 * 0.1 = 4

Благодарю) у вас превосходное чувство юмора!

Lemme 07.10.2015 19:38

Моя твоя не понимать, друг.

Но, вот эмуляция того, что ты расписал.

// каждое число - кол-во вещей, которые положил пользователь.
var userItems = [60, 40];

// Получаем вещи, которые положил победитель
// Победил тот, кто положил больше.
var winner = Math.max.apply(null, userItems);

// получаем сумму всех вещей.
var items = userItems.reduce(function(a, b) { 
	return a + b;
});

// получаем 10% комиссии. (сумма всех вещей - вещи победителя) * 0.1
var commission = (items - winner) * 0.1;


alert(commission + '%');

Николай777CR 07.10.2015 21:04

Спасибо, а как добавить элемент рандомности. Ну вот может выиграь и второй игрок, но у него меньше шансов)

Lemme 07.10.2015 21:29

Не знаю я алгоритмов, но первое, что приходит в голову:

function rand(chance) {
	var rnd = Math.round(Math.random() * 100);
    return rnd + chance >= 100 ? true : false;
}

function getTheWinner(items) {
    for (var i = 0; i < items.length; i++) {
    	if (rand(items[i])) {
        	return items[i];
        }
    }
    
    return getTheWinner(items);
}

alert(getTheWinner([60, 40]));

Николай777CR 07.10.2015 21:31

Спасибо

Lemme 07.10.2015 21:51

Слегка изменил функцию getTheWinner, ибо она каждый раз проходила по всем элементам массива, даже если победитель был найден.

Учти, что шанс = кол-ву предметов.


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