package inventory;
import java.text.DecimalFormat;
Модель задачи о торговле несохраняемого товара с заданным распределением спроса.
@author
public class RandomDemandFab {
public static void main(String[] args) {
System.out.println("Hello!");
double x;
double p = 50;
double q = 30;
double r = 10;
double a = 2;
double b = 6;
int n = 10000000;
for (x = a; x <= b; x += 1) {
process(x, p, q, r, a, b, n);
}
x = (p - q) / (p - r);
x *= x * (b-a); x += a;
System.out.println("максимум при х: " + x);
process(x, p, q, r, a, b, n);
System.out.println("a: " + a + "; b: " + b);
}
Симуляция торговли со случайным спросом несохраняемого товара.
@param x
@param p
@param q
@param r
@param a
@param b
@param n
public static void process(double x, double p, double q, double r, double a, double b, int n) {
double profit = 0;
for (int i = 0; i < n; i++) {
double y = Math.random();
y *= y * (b - a); y += a;
profit -= q * x;
if (y < x) {
profit += p * y;
profit += r * (x - y);
} else {
profit += p * x;
}
}
profit /= n;
double h = (p - q) * x - (p - r) * (x - a) * Math.sqrt((x - a) / (b - a)) * 2 / 3;
DecimalFormat df = new DecimalFormat(" 00.0000000000; -00.#########");
System.out.println("x: " + x + "; среднедневная прибыль: " + df.format(profit) + "; по формуле: " + df.format(h));
}
}