[Arquivo!] Pura matemática, física, química, etc.: problemas de treinamento do cérebro não relacionados ao comércio de qualquer forma - página 321
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Вариантов нет. Для 30 знаков нужно как-то эффективно ограничивать перебор.
Рекурсию, наверно, бесполезно (если число знаков больше 10).
Sim, eu concordo. Começou a escrever e imediatamente se deu conta de que o tempo iria simplesmente transbordar.
// Mas não espero nenhum problema com a pilha de 30 (ou mesmo 300) dígitos.
Já encontrei uma forma iterativa (em um loop), mas... a profundidade de bit para o produto não é suficiente de qualquer forma.
Sim, eu concordo. Comecei a escrever e imediatamente compreendi que o longo vai simplesmente transbordar.
E não precisamos de repetição, poderia ser mais simples, eu já achei iterativo (de uma só vez), mas... a profundidade de bit por produto não é suficiente de qualquer forma.
O longo deve ser mudado para String, por mais tolo que possa parecer.
Long нужно на String менять, как бы глупо это не звучало.
Não soa muito estúpido, apenas a multiplicação e a adição terão que ser reescritas à mão.
Está bem, mas a velocidade vai na areia, e para números de 30 dígitos levará muito tempo para contar.
// Verdade, ainda é uma ordem ou duas mais rápidas no mcl5 do que no Wasik :-P
Cada número é uma matriz ou uma seqüência de dígitos. Aumentar um número é uma tarefa de modelagem manual.
É muito tempo de qualquer forma, o colisor funcionará mais rápido :)
Por exemplo, é claro que precisamos procurar apenas conjuntos de dígitos, e o fato de que estes números colocados em fila podem formar algum número para o problema não é importante.
Além disso - se a soma dos números for um número primo - é ignorado.
E assim por diante.
А при чем тут лонг? Тут же исключительно с цифирями работа. Ну да, понимаю, хоцца все в один цикл всунуть. Дык попробуй-ка 17-ю цифру слева у 30-разрядного числа быстро извлечь.
Longo com o produto de 30 números em média 5 == 5^30
// ~ == 9,31323E+20 (e o comprimento cabe num máximo de 15 casas decimais)
;)
Вожусь немножко с №226.
Вьехал, что точки лежат не только на окружностях с центром в точке == центру многоугольника,
но и на наборе окружностей "половинного" диаметра прижатых к краям 1976-угольника.
Это легко понять, если представить себе место середин точек всех хорд пересекающих окружность одним из своих концов в фиксированной точке.
Возможно на этих окружностях лежат ещё какие-то "полуточки". (с) Т.е. ответ будет возможно больше чем очевидный минимум (1976).
Думаю дальше.
// Кстати, 1976 == 2*2*2*13*19
// Не знаю поможет ли это делу. Но во внимание принимаю. :)
Esta representação de 30 como uma soma de três cubos não era conhecida até recentemente (esta é a primeira solução encontrada para o número 30; a representação de 30 por três cubos tem sido uma hipótese há muito tempo). Encontrado, é claro, em um computador. A ordem dos números (já em cubos) é de apenas cerca de 30 dígitos.
É improvável que isso tenha sido feito por força bruta burra.
Вот сама программка:
-
'Объява
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
'Задаём исходные данные
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 "Ни фига не найдено"
End If
Next i
End Sub
'РАСЧЁТ СУММЫ
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
'РАСЧЁТ ПРОИЗВЕДЕНИЯ
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
De jeito nenhum...
E isto é o que parece um algoritmo de perl:
for(111..999){
split(//,$_);
my($sum,$mul)=(0,1);
for(@_){$sum+=$_;$mul*=$_;}
print("$_\n") if($sum*12==$mul);
}
Ни фига себе..
А вот как выглядит алгоритм на perl:
.....
Ele é apenas um programador.... mais ou menos.
Posso fazer isso em quatro ou cinco linhas em Wasik.
:)