簡體   English   中英

用小因子按大因子和小數量表示大數的算法

[英]Algorithm to scale large numbers by large factor and small numbers by small factor

我正在尋找一種算法,它可以通過一個很大的因子來擴展一個大的異常值,並且只對一些小的數字進行縮放(或者事件保持它們與以前相同)。 我們不必保持准確的比例,但只是一個想法,大數仍然大於小數。

例如,我有一個10,15,200的集合。讓我們將min和max分別定義為0和100,並且縮放值應該在該集合內(min和max不是預定義的並且可以調整)。 使用該算法,我們可以將它們縮放到5,6,20。

關於如何擴展這些數字的公式的任何想法?

我的用例是3個重疊集的維恩圖的數據。 我想保留大集合大於較小集合的事實,但是大圓圈不應該比較小集合大20倍。

你沒有提供足夠的細節來給出具體的建議,但總的想法是你想要一些顯着的減少。 通常,我們使用以下內容處理此問題:

  • 平方根(或其他分數根)
  • log(base並不重要;根據需要擴展)
  • arcTan(將結果限制在0-1范圍內)

與您的一些不尋常的案例一起玩,看看你喜歡哪些。 您發布的示例最接近sqrt的想法。

評論后更新

如果這用於選擇維恩圖中的圓的半徑,那么sqrt確實是保持大小(來自區域)的認知解釋的自然選擇。 這適用於任何2D縮放 - 盡管注意到對具有着色( 隱含 3D)的圖片執行此操作表明立方根將是適當的比例。 (參考:如何欺騙統計數據)。

在輸入具有非常不同的幅度的情況下,這有時是不可能的。 例如,給定(1,1000,1000000),您可能希望使用更高的根,或更改為日志,只是為了使最小的形狀易於處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM