Modelado matemático justo y razonable de la asignación de cuotas de recompensa
Nos encontramos con la siguiente situación. Hay 200 estudiantes en la escuela, incluidos 103 estudiantes de primer año, 63 estudiantes de segundo año y 34 estudiantes de tercer año si se calculan las 20 cuotas de becas seleccionadas. según el número de estudiantes, las proporciones se asignan a tres grados, 10.3, 6.3 y 3.4 respectivamente. Las cuotas asignadas se redondearán y se asignarán los 19 estudiantes. La cuota restante se asignará al grado inferior con mayor. resto según la rutina. Por tanto, hay 10, 7 y 4 plazas en los tres grados respectivamente. Si 21 estudiantes reciben becas, siguiendo el enfoque anterior, los tres grados tendrán 11, 7 y 3 plazas respectivamente, con una plaza menos en la escuela secundaria. Por lo tanto, los estudiantes de secundaria piensan que no es razonable. Para resolver esta contradicción, proponemos estudiar un modelo de asignación de cuotas más "justo y razonable" y luego utilizar programación en lenguaje informático de alto nivel para implementarlo.
2. Establecer un modelo matemático
Supongamos que el número de personas en el Partido A y el Partido B es , y cada uno ocupa una cuota, entonces el número de personas representadas por cada lado que ocupa. una cuota es, obviamente, cuando
La asignación de cuota es razonable. Pero, en general, estos dos números no son iguales. Para lograr una equidad relativa, se introduce el "error relativo". xi, △=, x1, x2 son los errores relativos de A y B respectivamente. Cuando A y B ocupan cada uno n1 y n2 vacantes, el número total de vacantes aumenta en 1. ¿Deberían asignarse a A o B? Sin perder generalidad, asumiendo p1>p2, lo que significa que es injusto para la Parte A, x1(n1,n2) es significativo, y luego asignar 1 cuota. Puede haber tres situaciones:
, descripción After Party. A añade una cuota, sigue siendo injusto para el Partido A. Obviamente, la cuota adicional debería asignarse al Partido A.
Para explicar que es injusto para el Partido B después de que el Partido A agrega 1 cuota, debería ser
Para explicar que es injusto para el Partido A después de que el Partido B agrega 1 cuota, debería ser
(Nota: bajo el supuesto de p1>p2, es imposible tener una situación en la que sea injusto para la Parte A y siga siendo injusto para la Parte B después de que la Parte B aumente su cuota en 1 .)
(Nota: Bajo el supuesto de p1>p2, la situación es imposible, es decir, si es injusto para A, después de agregar 1 cuota a B, sigue siendo injusto para B.)
Si x1(n1,n2+1)>x2(n1+1,n2), entonces la cuota adicional 1 debe asignarse a A, y viceversa. Por lo tanto, al combinar las ecuaciones (1), (2) y (3), podemos obtener
Es decir, cuando la ecuación (4) es verdadera, la cuota adicional 1 debe asignarse al Partido A. y viceversa. Supongamos que la cuota adicional 1 debe asignarse a la parte con P=max{P1,P2}.
Podemos resumir este problema en un problema más general: hay mi personas en Di, que han ocupado ni≥1 (i=1,2,...,k) vacantes Cuando las vacantes Cuando. el total se incrementa en 1, se calcula y luego asigna 1 espacio adicional a la parte con el valor Pi más grande.
3. Programación
Utilice una matriz para almacenar el número de ambas partes, la cuota asignada a cada parte y el valor P de cada parte. Para que toda la asignación sea justa y razonable, cada parte tiene al menos una cuota, por lo que primero se asigna 1 cuota a cada parte. A partir de la cuota k + 1, cada cuota es una nueva cuota. Al calcular el valor P, la cuota se asigna al mayor entre los valores k P. Al mismo tiempo, se modifica el valor P más grande y luego el. k + 2.ª cuota se asigna hasta que se asigna la cuota. Este trabajo repetitivo se implementa mediante declaraciones de bucle. Para determinar si se ha asignado la cuota, use yfrs para registrar el número de cuotas asignadas, q es el número total de cuotas y cuando se usa yfrs El programa principal es como se muestra en la figura anterior. El mensaje de felicitación contiene iconos de películas y bailes para expresar la felicitación. Seleccione la interacción, incluidos los participantes, el contenido del proyecto, el proceso de investigación, el software del proyecto y la subrutina final. En la subrutina del participante, se muestra la foto del participante. Cuando el mouse apunta al nombre de una persona, se mostrará la foto de la persona. En la subrutina del proceso de investigación, se registra el contenido de la investigación del período de tiempo del proceso de investigación y al mismo tiempo se muestran imágenes de información relevante. En la subrutina del software del proyecto, escribir el programa de cálculo según el algoritmo que diseñamos. Para que la computadora acepte los datos de entrada, la "parte de entrada" de la subrutina se diseña mediante interacción de texto, como se muestra en la imagen de la derecha: Hay un ícono de cálculo en "Ingresar los datos de entrada". número de partidos", que es el programa principal para calcular la cuota de asignación. Su contenido principal es el siguiente zc:=EntryText len:=CharCount(zc) p> zc1:="" zc2:="" ii:=1 weizi:=0 repetir mientras ii<=len
zc1:=SubStr(zc, ii,ii)
si zc1=", entonces
sz:=Real(zc2)
weizi:=weizi+1
ArraySet(weizi,sz)
zc2:=""
else
zc2 :=zc2^zc1
finalizar si
ii:=ii+1
finalizar repetir
fangshu:=weizi
ii:=1
repetir mientras ii<=fangshu
ArraySet(ii+fangshu,1)
a:=ArrayGet(ii)
b:=1
c:=a*a/(b*(b+1))
ArraySet(2*fangshu+ii,c )
ii:=ii+1
finalizar repetición
yfrs:=fangshu
repetir mientras yfrs maxp:=0 kl:=1 l:=fangshu+1 repetir con i:=1 a fangshu si ArrayGet(2*fangshu+i)>maxp entonces maxp:=ArrayGet(2*fangshu+i) l:=fangshu+i kl:=i finalizar si finalizar repetir b:=ArrayGet(l) +1 ArraySet( l,b) a:=ArrayGet(kl) c:=a*a/(b*(b+1 )) ArraySet( 2* fangshu+kl,c) yfrs:=yfrs+1 fin de repetición nn: =DeleteFile("aa.txt") Repetir con l:=fangshu+1 a 2*fangshu ss:= ArrayGet(l) AppendExtFile("aa.txt",ss) p> AppendExtFile("aa.txt"," , ") Repetir jieguo:=ReadExtFile ( "aa.txt",ss) AppendExtFile("aa.txt"," , ") Repetir jieguo:=ReadExtFile ("aa. txt") Al ejecutar el programa, puede obtener la distribución de las becas anteriores. Es razonable que los estudiantes de primer, segundo y tercer grado ocupen el puesto 11, 6 y 4 respectivamente Esta es una plantilla. Vea usted mismo. Es fácil de hacer