randRangeWeighted(3, 12, 1, 1 / 6) D_PARENT === 1 ? randRange(3, 12) : (rand(5) > 0 ? D_PARENT : 1)
D_PARENT === 1 ? randRange(1, 4) : randRangeExclude(2, 2 * D_PARENT - 1, [D_PARENT]) D_OFFSPRING === 1 ? randRange(1, 4) : randRangeExclude(2, 2 * D_OFFSPRING - 1, [D_OFFSPRING])
D_PARENT === 1 ? N_PARENT : mixedOrImproper(N_PARENT, D_PARENT) D_OFFSPRING === 1 ? N_OFFSPRING : mixedOrImproper(N_OFFSPRING, D_OFFSPRING) N_PARENT / D_PARENT N_OFFSPRING / D_OFFSPRING OFFSPRING / PARENT D_PARENT === 1 ? D_OFFSPRING : D_PARENT N_PARENT * (D_PARENT === 1 ? D : 1) _(floor(N_PARENT / D_PARENT)).times(function() { return fraction(D, D);}).join("+") N_OFFSPRING * (D_OFFSPRING === 1 ? D : 1) _(floor(N_OFFSPRING / D_OFFSPRING)).times(function() { return fraction(D, D);}).join("+") new Plural(function(e){return $.ngettext({lang:"es-ES",messages:["unidad\n\nunidades","unidades"]},e)})

El bloque inicial que se muestra abajo tiene CODE_PARENT D_PARENT === 1 ? plural_form(UNIT, N_PARENT) : plural_form(UNIT) de longitud. Usa las herramientas a la derecha para convertir el bloque inicial en el bloque objetivo que tiene CODE_OFFSPRING unidades de longitud. Tu progreso se verá reflejado en el cambio de longitud del bloque de prueba.

Bloque inicial:

initSliceClone(["current_block"]),init({range:[[0,1],[0,1]],scale:[500,25]}),rectchart([1,0],["#e00","#999"])

Bloque de prueba:

init({range:[[0,1],[0,1]],scale:[500,25]}),rectchart([1,0],["#e00","#999"])

Bloque objetivo:

init({range:[[0,1],[0,1]],scale:[500*ANSWER,25]}),rectchart([1,0],[BLUE,"#999"])
Cortar en 1 pedazo
Copiar 1 vez
[pieces,times.current_block]
return roundTo(3,guess[1]/guess[0])===roundTo(3,ANSWER)
pieces=guess[0],times.current_block=guess[1],updateGraphAndAnswer()
$("#pieces").text(plural(guess[0],"piece")),$("#current_block_times").text(plural(guess[1],"time"))

El bloque inicial tiene una longitud de CODE_PARENT, que puede reescribirse como:

\qquadPARENT_EXPANSION + fraction(N_PARENT - D, D_PARENT) = fraction(N_PARENT_EXPANDED, D)

El bloque objetivo tiene una longitud de CODE_OFFSPRING, que puede reescribirse como:

\qquad OFFSPRING_EXPANSION + fraction(N_OFFSPRING - D, D_OFFSPRING) = fraction(N_OFFSPRING_EXPANDED, D)

fraction(N_PARENT_EXPANDED, D) es lo mismo que N_PARENT_EXPANDED \times fraction(1, D).

Therefore, if we cut the starting block into N_PARENT_EXPANDED equal pieces, each piece will have a length of fraction(1, D) units.

Si copiamos un pedazo N_OFFSPRING_EXPANDED veces, tendremos una longitud de N_OFFSPRING_EXPANDED \times fraction(1, D) = fraction(N_OFFSPRING_EXPANDED, D) unidades.

Por lo tanto la solución es cortar el bloque inicial en N_PARENT_EXPANDED pedazos y copiar el bloque resultante N_OFFSPRING_EXPANDED veces.