寻找能够在2个业务合作伙伴之间平均分配利润/损失的功能

Ham*_*jan 5 language-agnostic math function

这不是作业,因为我不是学生.这是为了我一般的好奇心.如果我在这里重新发明轮子,我道歉.我寻求的功能可以定义如下(语言不可知):

int getPercentageOfA(double moneyA, double workA, double moneyB, double workB)
{
    // Perhaps you may assume that workA == 0
    // Compute result
    return result;
}
Run Code Online (Sandbox Code Playgroud)

假设爱丽丝和鲍勃想要一起做生意......比如......卖旧书.爱丽丝只对将钱投入其中而感兴趣.鲍勃可能会投资一些钱,但他可能没有可用的投资.然而,他将努力寻找卖方,买方和进行维护.

没有工具,教育,医疗保险费用或其他费用需要考虑.爱丽丝和鲍勃都希望"平等地"分配利润(高级用户的权重不同,如40/60).两者都是企业家,所以他们处理低投资回报率/工资和高收入.没有固定工资,最低工资,固定投资回报率或最低投资回报率.他们试图找到最好的交易,承担风险并为此而努力.

现在,让我们坚持使用50/50型号.如果爱丽丝投资100美元,鲍勃投资工作,他们将获得60美元的利润(或损失),他们将平均分配 - 要么他们的努力/投资得到30美元,要么鲍勃最终欠爱丽丝30美元.

第二种可能性:爱丽丝和鲍勃都投资100,然后鲍勃完成所有工作,他们最终获得了60美元的利润.看起来爱丽丝应该只得到15美元,因为30美元的利润来自鲍勃的投资和鲍勃的努力,所以爱丽丝将没有它,而另外30美元将被分成50/50.

即使A和B想要分割它35/65或者你有什么,上面的两个例子都是微不足道的.现在它变得更加复杂:如果爱丽丝投资70美元,鲍勃投资30美元+完成所有工作.看起来很简单:(70,30)=(30,30)+(40,0)......但是,如果我们只知道如何相对于彼此称重这两个部分.另一个复杂的(我认为)例子:如果爱丽丝和鲍勃分别投资70美元和30美元,并且投入相同数量的工作怎么办?

我有一些数据点:

  • 当A和B投入相同数量的工作且相同的$ - 50/50.
  • 当A投入100%的资金时,B完成100%的工作 - 50/50.
  • 当A完成所有工作并投入所有资金时 - 对于B的A/0为100(反之亦然).
  • 当A投入50%的资金时,B投入50%的资金以及投入所有工作--A为25,B为75(反之亦然).

如果我解决的事情,使得总workA = 0%,workB = 100%总的工作,然后getPercentageOfA成为一个功能:高度z给予xy.问题是 - 你如何在这几点之间推断这个函数?这个功能是什么?

如果你可以覆盖工作A不必0%完全工作的情况,并且当投资与工作分成85/15或使用其他模型时,新功能会是什么?

jmo*_*253 2

回答这个问题取决于您认为哪个变量具有更大的权重。根据您的数据点,我假设 100% 的工作相当于投入 100% 的资金。

int getPercentageOfA(double moneyA, double workA, double moneyB, double workB)
{
    // Perhaps you may assume that workA == 0

    aWorkPercentage = getPercentageOfAForWork(double workA, double workB);
    aMoneyPercentage = getPercentageOfMoney(double moneyA, double moneyB);

    weightMoney = 1;
    weightWork = 1;

    result = ( weightWork*aWorkPercentage + weightMoney*aMoneyPercentage) / 2

    return result;
}
Run Code Online (Sandbox Code Playgroud)

分别计算每个变量,然后将它们一起平均。这个公式的优点是,如果甲人和乙人决定将工作视为比金钱更有价值,反之亦然,则可以调整“权重”以反映最终的百分比。