#javascript #html #css
#javascript #HTML #css
Вопрос:
В принципе, у меня есть веб-сайт, который я создаю, это побочный продукт универсальных скрепок, он называется rubberbands . В процессе, конечно, вам нужно найти приличную формулу для расчета роста общественного интереса с количеством людей, которые покупают ваши резиновые ленты. Так что, чем выше общественный интерес, тем больше людей покупают ваши резиновые ленты.
У меня есть формула, которую я использую, но она очень субъективна и несовершенна, плюс она не работает, если ваши общественные интересы превышают 800 процентов. Ниже приведена формула, которую я использовал с интервалом в 100 мс.
setInterval (function() {
if (publicinterest < 100) {
if (Math.random() < publicinterest / 200) {
if (Math.random() < publicinterest / 200) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider /
sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML =
'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML =
'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML =
"Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
if (publicinterest < 200) {
if (Math.random() * 2 < publicinterest / 190) {
if (Math.random() * 2 < publicinterest / 190) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
if (publicinterest < 300) {
if (Math.random() * 3 < publicinterest / 180) {
if (Math.random() * 3 < publicinterest / 180) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
if (publicinterest < 400) {
if (Math.random() * 4 < publicinterest / 170) {
if (Math.random() * 4 < publicinterest / 170) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
if (publicinterest < 500) {
if (Math.random() * 5 < publicinterest / 160) {
if (Math.random() * 5 < publicinterest / 160) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
if (publicinterest < 600) {
if (Math.random() * 6 < publicinterest / 150) {
if (Math.random() * 6 < publicinterest / 150) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
if (publicinterest < 700) {
if (Math.random() * 7 < publicinterest / 140) {
if (Math.random() * 7 < publicinterest / 140) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
if (publicinterest < 800) {
if (Math.random() * 8 < publicinterest / 130) {
if (Math.random() * 8 < publicinterest / 130) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
//console.log('sellingpriceint', sellingprice);
//console.log('publicinterestint', publicinterest);
//console.log('rubberbandsint', rubberbands)
},100)
Этот код описывает 4 переменные. Общественный интерес — это событие, которое призвано увеличить объем продаж в зависимости от того, насколько он высок. Цена продажи — это сумма денег, за которую вы продаете резиновые ленты, и, следовательно, чем ниже, тем выше общественный интерес. publicinterestdecider — это, по сути, маржа и то, как я мог бы повысить общественный интерес с помощью обновлений. А unsoldrubberbands — это просто инвентарь. Деньги довольно самооправдывающиеся. Так что на самом деле все, что я ищу, — это лучшая формула, которая будет работать экспоненциально в зависимости от общественных интересов и работает независимо от того, каковы общественные интересы. (Имейте в виду, что общественный интерес сам по себе — это просто число, но на дисплее я добавляю символ процента рядом с ним)
Комментарии:
1. Если вы действительно серьезно относитесь к получению ответа на этот вопрос, я бы рекомендовал значительно упростить его и, вероятно, обобщить алгоритм, который вы пытаетесь описать, в псевдокод, а затем повторно отправить вопрос.
Ответ №1:
Вот способ сделать большую часть вашего кода пригодной для повторного использования:
setInterval (function() {
if (publicinterest < 100) {
if (Math.random() < publicinterest / 200) {
if (Math.random() < publicinterest / 200) {
if (unsoldrubberbands > 0) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
}
}
for(var loop = 0; loop < 7; loop ){
if(
publicinterest < loop * 100 200
amp;amp;
Math.random() (loop 2) < publicinterest / (190 - 10 * loop)
amp;amp;
Math.random() (loop 2) < publicinterest / (190 - 10 * loop)
amp;amp;
unsoldrubberbands > 0
) {
money = sellingprice;
publicinterest = publicinterestdecider / sellingprice;
unsoldrubberbands -= 1;
document.getElementById('moneytext').innerHTML = 'Money: $' money.toFixed(2);
document.getElementById('inventory').innerHTML = 'Inventory: ' unsoldrubberbands;
document.getElementById('publicinterest').innerHTML = "Public Interest " publicinterest.toFixed(1) '%';
}
}
},100)
Я не уверен, что вы хотите запускать код 7 раз для каждого интервала, но если это так, это сделает это.