2011-01-02 9 views
5

Esto no es tarea, porque no soy un estudiante. Esto es para mi curiosidad general. Me disculpo si estoy reinventando la función here.The rueda busco se puede definir de la siguiente manera (lenguaje agnóstico):Buscando una función que dividirá las ganancias/pérdidas por igual entre 2 socios comerciales

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

Supongamos que Alice y Bob quieren hacer negocios juntos ... como ... de venta utilizada libros. Alice solo está interesada en invertir dinero en él y nada más. Bob podría invertir algo de dinero, pero podría no tener $ disponible para invertir. Sin embargo, se esforzará por encontrar un vendedor, un comprador y hacer mantenimiento.

No hay herramientas, educación, costos de seguro médico u otros gastos a tener en cuenta. Tanto Alice como Bob desean dividir los beneficios "por igual" (un peso diferente, como 40/60 para usuarios avanzados). Ambos son empresarios, por lo que se ocupan de un ROI/salario bajo y de un alto ingreso por igual. No hay un salario fijo, salario mínimo, ROI fijo o ROI mínimo. Intentan encontrar el mejor trato posible, asumen riesgos y lo buscan.

Ahora, sigamos con el modelo 50/50. Si Alice invierte $ 100, Bob invierte en su trabajo y terminará con una ganancia (o pérdida) de $ 60, lo dividirán por igual: ambos obtienen $ 30 por sus esfuerzos/inversiones, o Bob termina debiendo $ 30 a Alice.

Una segunda posibilidad: Tanto Alice y Bob invierten 100, entonces Bob hace todo el trabajo, y terminan división 60 $ de ganancias. Parece que Alice debería obtener solo $ 15, porque $ 30 de esa ganancia vino de la inversión de Bob y del esfuerzo de Bob, entonces Alice no tendrá nada de eso, y los otros $ 30 se dividirán en 50/50.

Los dos ejemplos anteriores son triviales incluso cuando A y B quieren dividirlo 35/65 o lo que sea. Ahora se vuelve más complicado: ¿qué pasa si Alice invierte $ 70 y Bob invierte $ 30 + en todo el trabajo? Parece simple: (70,30) = (30,30) + (40,0) ... pero, si supiéramos cómo pesar las dos partes entre sí. Otro ejemplo complicado (creo): ¿qué pasa si Alice y Bob invierten $ 70 y $ 30 respectivamente, y también ponen en una cantidad igual de trabajo?

Tengo un par de puntos de datos:

  • Cuando A y B ponen en la misma cantidad de trabajo y el mismo $ - 50/50.
  • Cuando A pone el 100% del dinero, y B hace el 100% del trabajo - 50/50.
  • Cuando A hace todo el trabajo y coloca todo el dinero, 100 para A/0 para B (y viceversa).
  • cuando una pone en 50% del dinero, y B pone en 50% del dinero, así como hace todo el trabajo - 25 para A, y 75 para B (y viceversa).

Si puedo arreglar las cosas de tal manera que siempre workA = 0%, workB = 100% del trabajo total, entonces getPercentageOfA se convierte en una función: altura z dado x y y. La pregunta es: ¿cómo extrapolar esta función entre estos varios puntos? ¿Cuál es esta función?

Si puede cubrir los casos cuando workA no tiene que ser 0% del trabajo total, y cuando la inversión frente al trabajo se divide como 85/15 o con algún otro modelo, ¿cuál sería la nueva función?

Respuesta

2

Responder a esta pregunta depende de qué variable considere que tiene más peso. En base a sus puntos de datos, voy a suponer que el 100% del trabajo equivale a invertir el 100% del dinero.

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; 
} 

Calcule cada variable por separado y promedielas juntas. La ventaja de esta fórmula es que si la persona A y la persona B deciden tratar el trabajo como más valioso que el dinero o viceversa, entonces los "pesos" podrían ajustarse para reflejar el porcentaje final.

+0

Parece una respuesta completa. ¡Gracias! Sorprendentemente simple y portátil para un modelo de hoja de cálculo. –

2

Esto parece más un problema económico que un problema de programación. Idealmente, debe dividir los beneficios en proporción a la contribución de los socios. Las contribuciones de capital son fáciles de medir, ya están en dólares, mientras que el trabajo no lo es. La respuesta más simple es asignar un salario a la mano de obra. Luego puede calcular las contribuciones de cada persona en términos de dólares y otorgar a cada persona una parte de las ganancias en proporción a sus contribuciones.

0

Asigne un valor fijo al trabajo realizado - un salario. Suponga que el trabajo realizado se valora a una tasa fija de $ 50 por hora.

lo tanto, decir que Alice invierte $ 300, y Bob invierte $ 100. Pero Alice no trabaja. Bob pasa 8 horas de su tiempo, valorado en $ 50 por hora.

Bob ha invertido efectivamente 100 + 8 * 50 = $ 500, mientras que Alice ha invertido de $ 300. La inversión total es de $ 800. Entonces, el rendimiento de Bob es 5/8 de las ganancias, mientras que Alice gana 3/8 de las ganancias.

Cuestiones relacionadas