2011-05-09 5 views
3

Honnêtement, je ne peux pas penser à quoi chercher, mais ce que j'ai essayé n'a donné aucun résultat, alors je m'excuse si cela a déjà été demandé.Formule pour réduire les nombres plus élevés

Il s'agit aussi plus d'une question mathématique que d'une question de programmation, mais je le fais en JavaScript et cela me semble assez juste.

Ce que je veux faire est de réduire un nombre plus il est élevé. Par exemple, 10 peut être réduit à 9 et 100 peut être réduit à 20. J'ai essayé d'utiliser le nombre lui-même et la division, mais évidemment, cela renvoie juste un nombre fixe. J'ai aussi essayé la division simple, mais tout cela a trop réduit les nombres inférieurs et a eu peu d'effet sur les nombres plus élevés en comparaison. Existe-t-il une formule pour le faire en utilisant l'objet Math de JavaScript?

+1

On ne sait pas ce que vous voulez faire à partir de la formulation de votre question. Vous voulez juste réduire un nombre donné d'une quantité aléatoire? 'x = x - (x-1);' – mVChr

Répondre

4

A partir des deux exemples que vous avez données, vous pourriez être à la recherche d'une échelle de decilog:

function reduce(x) { 
    return 10 * Math.log(x)/Math.LN10 ; 
} 

Pour vos exemples,

reduce(100) = 20 
reduce(10) = 10 
+0

Parfait! Merci pour la réponse rapide, aussi. Maintenant j'ai quelque chose de nouveau à ma disposition. À votre santé! – Ruffy

+0

Notez simplement que cela augmentera tous les nombres <10. – mVChr

1

Quelques fonctions mathématiques qui peuvent être d'une aide sont

  1. racine carrée (ou d'une racine en général)
  2. Le funciton journal (à une base qui fait des œuvres pour vos besoins d'échelle)

combiner avec la multiplication soit le résultat ou l'entrée par une constante et/ou l'ajout d'une valeur au résultat ou l'entrée, et vous Je serai capable de trouver un bon nombre de choix d'échelle.

Vous pourriez même envisager de combiner ces fonctions.

Un moyen rapide de voir comment la fonction que vous décidez de mettre à l'échelle des nombres, serait de les entrer dans une calculatrice graphique (ou wolframalpha.com) et voir le graphique pour diverses entrées.

1

Enfin, un bon cas d'utilisation pour Wolfram Alpha:

http://www.wolframalpha.com/input/?i=best+fit+[10%2C+9]%2C+[100%2C+ 20]

Questions connexes