English 中文(简体)
比额表:从1.0到1.0
原标题:Scale a list of numbers from -1.0 to 1.0

这应当是一件容易的事。

我有一份名单。 在<代码>-1.0和1.0之间,为<代码>min =-1和max = 1.0之间,我如何列出数值?

问题回答

摘录

然后,每个比额表的编号x2(x- min)/(max - min) - 1

仅检查——

  1. min scales to -1
  2. and max scales to 1

如果是一份长串的序号:c = 2/(max- min),并随附c * x - 1,则是一个好的想法。

这是已签署的正常化协议。

1 - 将最低和最高价值列入清单(MinVal,MaxVal)

2 - convert each number using this expressions signedNormal = (((originalNumber - Minimum) / (Maximum - Minimum)) * 2.0) - 1.0

我故意使这一效率低,以明确,提高效率

double min = myList.GetMinimum();
double max = myList.GetMaximum();
double signedRangeInverse = 1.0 / (max - min);
for(int i = 0;i < myList.NumberOfItems();i++)
  myList[i] = (((myList[i] - min) * signedRangeInverse) * 2.0) - 1

No point in recalculating range each time No point in dividing range, mult is faster

如果您最后希望0到0:

  1. Find the number with the largest magnitude. This will either map to 1 or -1.
  2. Work out what you need to multiply it by to make it 1 or -1.
  3. Multiply all the numbers in the collection by that factor.

E.g

[ -5, -3, -1, 0, 2, 4]

数量最多的是5个。 我们可以通过将二倍(-1/-5)乘以达到1。 (如果你的人数全部为零,就会知道差距为0。)

因此,所有要素均乘以0.2。 这将使:

[-1, -0.6, -0.2, 0, 0.4, 0.8]

虽然注意到

[ -5, -5, -5 ] -> [ -1, -1, -1 ]

以及

[ 5, 5, 5 ] -> [ 1, 1, 1 ]

以及

[ 0, 0, 0 ] -> [ 0, 0, 0 ]

这可能不是你想要的。 感谢“Hammerite”通过他非常有益的评论促使我注意:





相关问题
How to add/merge several Big O s into one

If I have an algorithm which is comprised of (let s say) three sub-algorithms, all with different O() characteristics, e.g.: algorithm A: O(n) algorithm B: O(log(n)) algorithm C: O(n log(n)) How do ...

Grokking Timsort

There s a (relatively) new sort on the block called Timsort. It s been used as Python s list.sort, and is now going to be the new Array.sort in Java 7. There s some documentation and a tiny Wikipedia ...

Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Enumerating All Minimal Directed Cycles Of A Directed Graph

I have a directed graph and my problem is to enumerate all the minimal (cycles that cannot be constructed as the union of other cycles) directed cycles of this graph. This is different from what the ...

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签