2009-09-04 79 views
-4

我有一些代碼,如果一個用戶已經提到X人數,他會得到X數量的學分。數學問題幫助

例如,提到2人= 1信用。 4人= 2學分,依此類推。

然而,當這得到棘手的是,這些數字是可以改變的,所以他得到每人1個學分,或每3人1個學分,1個學分爲5人,等

如果他得到了3 1個學分人們,他已經提到了5個人,那麼我希望他得到1個信用,並存儲它,他仍然有2個人,他沒有得到任何信用。所以下一次他提到某人的時候,就是2 + 1 = 3,並且他得到了信用。

我的問題是,

鑑於X =的他需要引用爲1個學分, 和Y =人用戶已refered號碼,

(所以X可能是3人數量,每個學分3人,Y可能是6,在這種情況下,他應該得到2學分)

1)什麼是簡單的公式或函數,將X和Y,並返回應該給予的學分數那個人,和

2)哪一個還將給予尚未頒發的學分餘額。例如,如果X是3,Y是5,信用額度是1,剩餘部分是2,那麼下一個引用者Y將再次變爲3,用戶將獲得1個信用額度?幣的

+0

X可以隨時間變化嗎? – Bombe 2009-09-04 13:36:18

+1

重讀你的問題,並編輯糾正不一致。在第四段中,如果他每人獲得3個學分,那麼如果他提到五個人,他應該得到15個學分不是一個學分。你的意思是每3個人1分? - – 2009-09-04 13:43:14

+0

wtf?爲什麼這麼多downvotes – 2009-09-05 16:08:05

回答

8
1.) 
creditsToPayout = Y/X; //use integer division to truncate, or floor result 
remainderReferrals = Y % X; //remainder of Y/X, leftover referrals 
0

總數= FLOOR(Y/X)

餘數= Y-(X * FLOOR(Y/X))

1

需要整數除法和模量。對於PHP看到here爲:

- intval($a/$b) 
- $a % $b 
1

如果數量可以隨時間而改變,如果說,intially是每學分3人發生了什麼。他指7個人,並獲得2個學分,剩下1個人。然後規則更改爲每個信用4人。根據這條規則,他只會得到1分,剩下3個人。你有信用嗎?我猜不是,新規則只適用於新的學分。所以我認爲你需要保留你的數據庫或其他信息,收到的信用數量以及剩下的不足以作爲信用的轉介數量。隨着時間的推移,未記賬的推薦人數量會隨着時間的推移而增減,因爲他會進行新的推介,並在他們「交換」信用。

坦率地說,我認爲如果您可以使規則成爲每個推介的X個積分而不是每個積分的X個推介,那麼只需增加您使用積分購買的任何代價的成本就會更簡單。比如,如果規則對於5次推薦爲1分,並且當你得到10分時,你得到一個免費的iPod或其他任何東西,那麼你需要50個推薦來獲得iPod。因此,將其改爲每次推薦1個積分,並且需要50個積分來購買iPod。那麼你不必處理分數。但是也許你沒有制定規則,這都是無關緊要的。