[Archivo] Matemáticas puras, física, química, etc.: problemas de entrenamiento cerebral no relacionados con el comercio de ninguna manera - página 320

 
Mathemat escribió(a)>>
Richie, ¿lo resolverás tú mismo?

Así que se me ocurrió a mí :)

))

Entonces que sean cuatro en lugar de tres. Y 128, no 12.

 
Estoy jugando un poco con el #226.
Me he dado cuenta de que los puntos se encuentran no sólo en los círculos centrados en un punto == el centro del polígono,
sino también en un conjunto de círculos de medio diámetro presionados contra las aristas del polígono.
Es fácil de entender, si se imagina la posición de los puntos medios de todas las cuerdas que cortan el círculo en uno de sus extremos en un punto fijo.
Tal vez haya más "medios puntos" en estos círculos. (c) Es decir, la respuesta será probablemente más que el mínimo obvio (1976).
Pienso más allá.
// Por cierto, 1976 == 2*2*2*13*19
// No sé si esto ayuda al caso. Pero lo tengo en cuenta. :)
 
a = 128(b+c+d)/(bcd-128)
De nuevo, si todos son iguales, entonces 512*a = a*a*a*a, es decir, a = 8. El número 8888 también es ligeramente místico.
No se ha pensado en otras soluciones. Pero el producto de tres dígitos cualquiera es mayor que 128.
 
MetaDriver писал(а) >>

Entonces dame cuatro dígitos en lugar de tres. Y no por 12, sino por 128.


Tengo un programa en BASIC, así que no me "llenes" con él :)))

 
Richie >>:

У меня программа есть на бейсике, так, что меня этим не "засыпать" :)))

Fácil. Si el número es, por ejemplo, de 30 dígitos, tu vasico se torturará para contar. Sería más rápido que un colisionador destruyera la Tierra.

 

Mathemat, deja lo del colisionador. No supone ningún peligro. Es que los políticos y los científicos tienen que ir a mear.
Los americanos intentaron una vez "calentar el aire" con microondas - perdieron mucho dinero, ahora los periodistas pisan ese territorio :)))
-
Por cierto, sobre el 128.
Lo siguiente servirá:
34688
34866
36468
38864
43668
44946
44964
63468
etc.
-
Aquí está el programa en sí:
-
'Declare
Dim M As Long
Dim N As Long
Dim Koeficient As Long

Private Sub Command1_Click()
Dim MaxChislo As Long
Dim MinChislo As Long
Dim i As Long
Dim strok As String
'Establezca los datos iniciales
MinChislo = 1
MaxChislo = 100000
Koeficient = 128
For i = MinChislo To MaxChislo
strok = LTrim(RTrim(Str(i)))
If ProizCifr(strok) / SumCifr(strok) = Koeficient Then
Print strok
Else
'Print "No se encuentra"
End If
Next i
End Sub

'CONTEO TOTAL
Private Function SumCifr(Stroca As String) As Long
Dim i As Long
Dim Summa As Long
Dim Cifra As Long
For i = 1 To Len(Stroca)
Cifra = Val(Mid(Stroca, i, 1))
Summa = Summa + Cifra
Next i
SumCifr = Summa
End Function

'CALCULO DE PROIZ
Private Function ProizCifr(Stroca As String) As Long
Dim i As Long
Dim Proiz As Long
Dim Cifra As Long
Proiz = 1
For i = 1 To Len(Stroca)
Cifra = Val(Mid(Stroca, i, 1))
Proiz = Proiz * Cifra
Next i
ProizCifr = Proiz
End Function

 
Richie, entiendo que el colisionador es un poco demasiado.
34688 no funciona: la suma es 29 y el producto no es divisible por este número primo. No puedes hacer una flor de piedra... Y ninguno de ellos encaja en absoluto.
P.D. ¡Oh, tienes cinco dígitos!
 
Mathemat >>:
О других решениях не думал. Но произведение любых трех цифр больше 128.

La solución es la única.

No hay problema para escribir un programa.

Por ejemplo, en el tráiler el script para 4 dígitos da una solución de fuerza bruta para un divisor arbitrario. (La velocidad, por cierto, es agradablemente sorprendente).

Resuelve con bucles anidados.

Lo interesante: cómo escribir un programa para un número arbitrario de caracteres (especificado en el parámetro).

¿Cuáles son las opciones?

La recursión parece funcionar, pero consume mucha pila. Me gustaría hacer una recursión. ¿Alguna otra idea?

Archivos adjuntos:
12.mq5  1 kb
 
Mathemat писал(а) >>
Richie, me doy cuenta de que el colisionador es un poco exagerado.
34688 no funciona: la suma es 29 y el producto no es divisible por este número primo. No se puede hacer una flor de piedra...
Y ninguno de los que has mencionado funciona en absoluto.


Hoy no estoy muy bien, estoy trabajando demasiado:
-

 
MetaDriver >>:

А вот интересно: как написать прогу для произвольного количества знаков (задаваемого в параметре).

Какие варианты?

Рекурсия вроде прокатывает, но расходно по стеку. Щас сделаю рекурсию. Ещё идеи есть?

No hay opciones. Para 30 caracteres, hay que limitar el rebasamiento de forma efectiva de alguna manera.

La recursión es probablemente inútil (si el número de caracteres es superior a 10).