根据2个数字之间的距离计算乘数

时间:2016-04-15 20:12:35

标签: python math formulas

我不确定如何正确地说出问题,但我会尝试。

我正在尝试根据2个整数之间的差异找到一个提供乘数的公式。

实施例

  • 1和1 =距离为0 = 1
  • 1和2 =距离为+1 = 1.5
  • 1和3 =距离为+2 = 1.75
  • 1和4 =距离为+3 = 1.89
  • 1和5 =距离为+4 = 1.95
  • 1和6+ =距离为+5 = 2.0
  • 20和21 =距离为+1 = 1.5

我也需要这个来为负距离工作。

  • 2和1 =距离为-1 = 0.5
  • 3和1 =距离为-2 = 0.75

我上面使用的所有乘数都是例子。

我正在尝试用Python实现它,所以python中的任何一个例子都是理想的。

谢谢给Pedro,John Moeller和ayhan我有这个:

from math import sqrt

def multiplier(x, y):
    dist = y - x
    return 1 + dist/sqrt(5+dist**2)

这给出了输出:

Distance: -5 = 0.09
Distance: -4 = 0.13
Distance: -3 = 0.20
Distance: -2 = 0.33
Distance: -1 = 0.59
Distance: 0 = 1.00
Distance: 1 = 1.41
Distance: 2 = 1.67
Distance: 3 = 1.80
Distance: 4 = 1.87
Distance: 5 = 1.91

足够接近,谢谢!

1 个答案:

答案 0 :(得分:0)

尝试一下:1 + x / sqrt(1 + x ^ 2)。 这给出了一个类似于图表中的趋势,但它的y限制为0和2,而x = 0则根据需要给出y = 1。

http://m.wolframalpha.com/input/?i=1+%2B+x%2Fsqrt%281%2Bx%5E2%29&x=0&y=0

在Python中:

import math 
def multiplier(x, y):
    dist = x - y
    return 1 + dist/math.sqrt(1+dist**2)