2010-12-02 44 views
1

Tout d'abord, les mathématiques ne sont pas mon domaine.Distribution logarithmique

Imaginez un problème comme celui-ci:

J'ai un certain nombre d'argent à dépenser, disons 500, et je dois les passer sur un nombre fixe de jours, disons 20. J'ai un maximum fixe d'argent pour dépenser par jour, comme 50. Je n'ai pas besoin de dépenser de l'argent un jour.

Maintenant, je dois savoir comment calculer le nombre total d'argent que je dois passer chaque jour pour obtenir une courbe de dépenses comme les suivantes:

Curve

Mon but est une fonction qui prend un certain nombre de l'argent et un certain nombre de jours, et retourne un tuple avec le numéro du jour et le montant de l'argent pour ce jour. Je sais que je dois utiliser des logarithmes d'un certain type, et j'ai essayé à peu près tout ce que mon cerveau peut gérer. Je l'ai regardé wolfram mathworld et cette formule:

y = a + b ln x

Mais cela ne me permet pas vraiment.

Un indice ou un exemple en PHP, Python ou C# serait bien, mais n'importe quel langage fera l'affaire.

S'IL VOUS PLAÎT laissez-moi savoir si vous avez besoin de plus d'informations ou si la question est vague, je veux vraiment résoudre ce problème. Je vous remercie!

+3

L'algorithme vous filmez pour VAG est- ue ... si vous avez un maximum que vous pouvez dépenser, alors la ligne sera linéaire - commençant à 500 et descendant 50 chaque jour. ('y = 500 - 50x') Si vous n'avez pas de minimum, la formule est simplement' y = 500' car vous n'avez pas besoin de dépenser avant le dernier jour. La courbe * réelle * se situera quelque part entre les deux, mais sans le montant exact que vous devez dépenser chaque jour, il n'y a vraiment aucun moyen de tracer cela. – cdhowie

+0

vous devriez plutôt poser cette question à http://math.stackexchange.com –

+0

@cdhowie Oui, je sais si cela semble vague, ce n'est pas mon domaine du tout. Est-ce plus facile si nous disons que je dois dépenser au moins 1 argent par jour? @Andreas Niedermair vous avez probablement raison, j'ai considéré cela quand j'ai posté ma question, mais comme c'est dans un contexte de programmation j'ai décidé d'aller avec SO. – alexn

Répondre

0

Etes-vous sûr que ce que vous demandez n'est pas une équation linéaire? Par exemple, y = f (x) = - 50x + 500 et le nombre total de jours serait x où y = 0.

2

Je ne comprends pas pourquoi vous voulez une distribution de journal. Une parabole va faire pour obtenir la forme de courbe que vous voulez:

spend[day] = a day^2 + c 

où:

a -> (6 * (TD - TA))/(TD *(-1 - 3 * TD + 4 * TD^2)) 


c -> -((1 + 3 * TD - 6*TA*TD + 2 * TD^2)/ (-1 - 3 * TD + 4 * TD^2)) 

TA = Total Amount 
TD = Total Days 

Avec ce montant que vous passez le dernier jour est 1.

Pour vos valeurs par exemple: (amt 500, 20) jours

+0

Merci, je pense vraiment que c'est ce que je veux accomplir. Laisse-moi essayer ça et revenir. – alexn

+0

Quelle bibliothèque de traçage utilisez-vous? On dirait soigné. – alexn

+0

@alexn C'est Mathematica, de Wolfram. Nice mais cher :(http://www.wolfram.com/ –