[semi OT] Problema matematico

28/07/2009 - 17:31 por MEVB | Informe spam
Tengo un problema matemático que creo está relacionado con inecuaciones,
conjuntos e intervalos, pero no logro resolver con mis limitados
conocimientos de la materia.

El enunciado que me atrevo a formular es algo así:

Se tiene una lista total de valores conocida llamada "f", y que siempre
inicia en 1 (i=1).
Se tiene un bloque o intervalo de valores "b" y la posición dentro de ese
bloque llamada "bp".
Se desean conocer los extremos del bloque, "bi" y "bf".

i es un valor constante.
b, f y bp son variables.

Ejemplos de los bloques:
b. 10. 15
-
1. 1 - 10.. 1 - 15
2. 11 - 20.. 16 - 30
3. 21 - 30.. 31 - 45
4. 31 - 40.. 46 - 60

Si bp = 17,
cuando b entonces bi y bf (ubicado en el intervalo 2)
y cuando b entonces bi y bf0 (ubicado en el intervalo 2)

Si f = 41, el último bloque será...
para b entonces biA y bfA (ubicado en el intervalo 5)
y para b entonces bi1 y bfA (ubicado en el intervalo 3)

Sin embargo, bi y bf son desconocidos y deben calcularse teniendo los
valores de: b, f, bp, i=1.
Conociendo el intervalo "n" se puede saber el valor de "bf", siendo que bf =
b * n

Otra forma de ver el enunciado es como si fuera una recta en el plano.
i=1...f
||
..\-- b -/
.bi-bf
bp

Alguien sabe como calcular los valores de bi, bf???

Saludos
MV

Preguntas similare

Leer las respuestas

#6 Rubén Vigón
28/07/2009 - 19:09 | Informe spam
Siguiendo con tu ejemplo:

Dim i As Integer, f As Integer, b As Integer, bp As Integer
i = 1
f = 60
bp = 17
b = 10
Debug.Print "Para b -> bi:bf = " & Partition(bp, i, f, b)
b = 15
Debug.Print "Para b -> bi:bf = " & Partition(bp, i, f, b)
________________________________________

Para b -> bi:bf = 11:20
Para b -> bi:bf = 16:30
________________________________________

Un saludo!

Rubén Vigón
http://vigon.mvps.org
Respuesta Responder a este mensaje
#7 langosta
28/07/2009 - 19:13 | Informe spam

Lo triste es que yo sé esto... Debería haber usado MulDiv(), que para
eso está...





¡por dios! MulDiv() sirve al propósito contrario. No debería haberlo
usado, y gracias a dios no lo usé...

Buenas noches.
Respuesta Responder a este mensaje
#8 MEVB
28/07/2009 - 21:36 | Informe spam
Gracias Ruben

Sin embargo, estaba buscando una ecuación o algoritmo, pues lo necesito en
VBScript, donde no existe esa funcion que mencionas.

Saludos
MV


"Rubén Vigón" escribió en el mensaje
news:
Siguiendo con tu ejemplo:

Dim i As Integer, f As Integer, b As Integer, bp As Integer
i = 1
f = 60
bp = 17
b = 10
Debug.Print "Para b -> bi:bf = " & Partition(bp, i, f, b)
b = 15
Debug.Print "Para b -> bi:bf = " & Partition(bp, i, f, b)
________________________________________

Para b -> bi:bf = 11:20
Para b -> bi:bf = 16:30
________________________________________

Un saludo!

Rubén Vigón
http://vigon.mvps.org
Respuesta Responder a este mensaje
#9 MEVB
28/07/2009 - 21:37 | Informe spam
Bueno, la primera que enviaste no la probé y la simplifique al "ojo por
ciento".
Ahora con los parentesis la probé y funciona de maravilla.

Gracias,
MV

"langosta" escribió en el mensaje
news:h4nb62$mjr$
fue
bi = bp\b * b + 1
bf = bp\b * b + b







debió ser

bi = (bp \ b) * b + 1
bf = (bp \ b) * b + b

sino, b * b resulta tan grande que la división es 0.

Lo triste es que yo sé esto... Debería haber usado MulDiv(), que para eso
está...


Respuesta Responder a este mensaje
#10 MEVB
28/07/2009 - 22:20 | Informe spam
Me adelanté a las pruebas y ahora encontré un error.
Cuando bp=bf calcula incorrectamente el intervalo.
Por ejemplo, si b y bp, incorrectamente da estos resultados:
bi = 16 y bf = 30 cuando deberían ser bi=1 y bf

Saludos
MV

"MEVB" <m.a.n.u.e.l.[AT].a.p.u.r.o.s...c.o.m> escribió en el mensaje
news:
Bueno, la primera que enviaste no la probé y la simplifique al "ojo por
ciento".
Ahora con los parentesis la probé y funciona de maravilla.

Gracias,
MV

"langosta" escribió en el mensaje
news:h4nb62$mjr$
fue
bi = bp\b * b + 1
bf = bp\b * b + b







debió ser

bi = (bp \ b) * b + 1
bf = (bp \ b) * b + b

sino, b * b resulta tan grande que la división es 0.

Lo triste es que yo sé esto... Debería haber usado MulDiv(), que para eso
está...






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida