我有一個問題,我需要在一定數量的收件人之間分割多個(數千個)數量,以便每個數量必須分成整數並使用相同的比例。 我需要找到一個代碼實現這個可靠和高效(不,我們都?:-))分割數量算法(證券交易所訂單)
這是爲了解決在金融市場(證券交易所訂單)的問題,其中一個訂單可能會得到成千上萬的「填充」並且在一天結束時必須分配給少數客戶,同時維持訂單的平均價格。這裏有一個例子:
累計訂貨量爲37300個
數量聯交所
執行1. 16700股在填充價格75.84
執行2. 5400股以填補價75.85
填寫執行3. 4900股價格填補75.86
執行4. 10300股股票價格填補È75.87
總計37300股填充在平均價格=(16700 * 75.84 + 5400 * 75.85 + 4900 * 75.86 + 10300 * 75.87)/ 37300 = 75.85235925
假設我需要3個客戶之間分配這些量即:
客戶端1:15000股
客戶機2:10000股
Client3:12300股
EA CH執行必須單獨分開(我不能只取每個客戶售價爲均價請求的數量)
我首先想到的是按比例分割每個:
客戶端1獲取37300分之15000= 0.402144772
客戶端2得到37300分之10000= 0.268096515
客戶端3獲取三萬七千三百分之一萬二千三百= 0.329758713
,這將導致
客戶端1 - 15000客戶端2 - 10000 Client3 - 12300 比:0.402144772比:0.268096515比:0.329758713
拆分(很抱歉的格式 - 這是我能在帖子編輯器做的最好的)
+-------------+-------------+-------------+
| Client 1 | Client 2 | Client 3 |
+-------------+-------------+-------------+
| 6715.817694 | 4477.211796 | 5506.970509 |
| 2171.581769 | 1447.72118 | 1780.697051 |
| 1970.509383 | 1313.672922 | 1615.817694 |
| 4142.091153 | 2761.394102 | 3396.514745 |
+-------------+-------------+-------------+
| Totals: | | |
| 15000 | 10000 | 12300 |
+-------------+-------------+-------------+
這個問題是,我不能分配數量給客戶端,所以我需要一個智能算法來調整數量,使得這些分割的小數部分爲0.我明白,在許多情況下這可能是不可能的,所以這個要求可以放鬆一點,這樣某個客戶可以獲得更多(或更少)的收益。
是否有人知道我可以用作此問題的起點的算法?
這個問題似乎有點太大的範圍爲stackoverflow。解決整個問題真的有點太多了。如果您在處理這個問題時遇到了更具體的問題,那麼這個問題更適合本網站。 – Servy
@Servy,太大?我認爲如果它的措辭是「如何在7等分中拆分41,所以每個都得到整數6,6,6,6,6,6,5?」它不會得到這麼多downvotes ... –
是的,這就是你張貼太多的信息:-) –