Jump to content

Pra quem gosta de matrizes


dois

Recommended Posts

  • 2 weeks later...

Olá a todos,

 

Trata-se de um festival de 11 (ONZE) Matrizes 25-10-6-15=2

É isso mesmo !!!

O Mínimo Teórico responde 4, mas o dois faz com 2 

 

Detalhes de cada Matriz:

  • 98% aproximadamente conforme apontado pelo COLOGA
  • O Mínimo Teórico é:  4 linhas.


 

Link to comment
Share on other sites

  • 1 month later...

Olá á todos,

 

Estou muitíssimo atarefado e tentando não descuidar da minha saúde !!!

Estou intercalando entre 3 (TRÊS) tarefas:

1.) Estudando matemática

2.) Aperfeiçoando minha planilha dois_Lcef_LF_MATRIZES _Ferramenta Básica

3.) Postando conteúdo no meu tópico [OPINIÃO] LOTOFÁCIL é mais fácil com E=MC2

 

É muito estudo e muito trabalho...

Atualmente na minha planilha dois_Lcef_LF_MATRIZES _Ferramenta Básica comecei a criar

as rotinas de 2 (dois) botões  X  e  i  ... Surgiu uma dúvida quanto a melhor lógica, então decidi,

para efeito de comparação. fazer uma planilha teste de FORÇA BRUTA...

 

Como eu já suspeitava, mesmo priorizando o processamento em Array no EXCEL fica muito

demorado... vou fazer mais testes e identificar os usos que NÃO provoquem demora demais ...

Porém, preciso de ferramenta MAIS rápida... comecei os estudos em linguagem C, mas

continuo pensando em partir "pra porrada", ou seja, Assembly.

 

Enfim...

Vejam um "print" do primeiro teste não condicional...

PS: Este teste está completando 24 horas ininterruptas de processamento

       e não chegou nem em 1%. e pelos cálculos iniciais não chegará tão breve !!!

 

 

Estratégias, objetivos e muita disciplina...

e Ao trabalho!!!

 

 

LF 120 dois MATRIZES  _Força Bruta não concidional.jpg

Link to comment
Share on other sites

Dois,

Como há pouco tempo atrás aqui no fórum houve um tópico relativo ao Assembly, por curiosidade fui procurar algo e me deparei com um artigo relativo a Fortran, que segundo meu conhecimento foi desenvolvido para a área de Engenharia e Matemática.

O Prof. Nelson Luis Dias afirma que Python pode ser quase tão rápido quanto Fortran, mas muito mais fácil de aprender, cfe. segue:

http://pt.slideshare.net/rodnny1/blafor

Saliento que sou apenas curioso, não sei nada de programação.

Coloco isto apenas como informação e espero que alguém possa tirar proveito. 

Abraços,

Antonio.-

 

Link to comment
Share on other sites

1 hora atrás, abc.antonio disse:

Dois,

Como há pouco tempo atrás aqui no fórum houve um tópico relativo ao Assembly, por curiosidade fui procurar algo e me deparei com um artigo relativo a Fortran, que segundo meu conhecimento foi desenvolvido para a área de Engenharia e Matemática.

O Prof. Nelson Luis Dias afirma que Python pode ser quase tão rápido quanto Fortran, mas muito mais fácil de aprender, cfe. segue:

http://pt.slideshare.net/rodnny1/blafor

Saliento que sou apenas curioso, não sei nada de programação.

Coloco isto apenas como informação e espero que alguém possa tirar proveito. 

Abraços,

Antonio.-

 

 

 

Muitíssimo obrigado pela sugestão !!!

 

Em programação minha "área de conforto" é CLIPPER/Dbase ... é isso mesmo!!!

aquele que roda em DOS compatível até 32 bits e este é o problema !!!

 

Tempos atrás me indicaram HARBOUR como "sucessor natural"...

Também iniciei estudos na linguagem C ...

Não adianta sempre necessita se adaptar à linguagem, por isso

continuo pensando em partir "pra porrada", ou seja, Assembly.

 

Também continuo tentando aceitar as gambiarras do VBA/EXCEL...

SIM, considero como gambiarra mesmo, porque o meu conceito é

que numa linguagem tudo que é nativo é processado mais rápido.

 

Mas agora mesmo parei a rotina que estou criando, pois fiquei irritado...

então não seria satisfatório nem produtivo continuar...

 

Enfim... Mais uma vez, muitíssimo obrigado pela sugestão !!!

 

Um abraço!

 

 

Link to comment
Share on other sites

17 minutos atrás, dois disse:

 

 

Muitíssimo obrigado pela sugestão !!!

 

Em programação minha "área de conforto" é CLIPPER/Dbase ... é isso mesmo!!!

aquele que roda em DOS compatível até 32 bits e este é o problema !!!

 

Tempos atrás me indicaram HARBOUR como "sucessor natural"...

Também iniciei estudos na linguagem C ...

Não adianta sempre necessita se adaptar à linguagem, por isso

continuo pensando em partir "pra porrada", ou seja, Assembly.

 

Também continuo tentando aceitar as gambiarras do VBA/EXCEL...

SIM, considero como gambiarra mesmo, porque o meu conceito é

que numa linguagem tudo que é nativo é processado mais rápido.

 

Mas agora mesmo parei a rotina que estou criando, pois fiquei irritado...

então não seria satisfatório nem produtivo continuar...

 

Enfim... Mais uma vez, muitíssimo obrigado pela sugestão !!!

 

Um abraço!

 

 

dois,

 

Eu tive que aprender a programar para o meu gasto (estudo das loterias, apenas, nada comercial) e andei passando por 3 linguagens diferentes ao longo de mais de 15 anos.

 

Acabei ficando no Delphi. Versão melhorada (em termos de programação, claro) do velho Pascal.

 

Mesmo com o Delphi, tive que criar muitas funções e rotinas para agilizar alguns processamentos que costumam ser pesados em qualquer linguagem.

 

Minhas rotinas hoje são baseadas num tipo interno que acabei aprendendo a usar (o SET do Delphi). Esse tipo tem muita flexibilidade e pude descobrir como adaptar para estudar as loterias: geração de jogos e, principalmente, filtragem de jogos.

 

Caso eu possa ajudar, estou à sua disposição.

 

Se precisar de alguma coisa relativa à Lotofacil, quem sabe já tenha algumas funções prontas que você possa usar ou adaptar.

 

De outro lado, caso queira me dizer do que precisa exatamente, pode ser que eu consiga fazer usando as centenas de funções e rotinas que já tenho prontas no Delphi.

 

Por exemplo, o que está fazendo exatamente essa rotina demorada no Excel?

 

Se puder, entre no Skype para teclarmos por lá.

Link to comment
Share on other sites

4 horas atrás, abc.antonio disse:

 

O Prof. Nelson Luis Dias afirma que Python pode ser quase tão rápido quanto Fortran, mas muito mais fácil de aprender,

 

1 hora atrás, Fernandes20 disse:

Sugiro aprender Python 

 

 

Muitíssimo obrigado pela sugestão !!!

baixei algumas coisas e estou dando uma olhada,;;

 

Vocês podem me esclarecer quanto a:

1.) Possui recurso macrosubstituição ???

      O que é: Permite o uso do que está dentro de uma variável.

      Exemplo 1:   a = "Array_A(1)" , sendo que Array_A(1)="Olá mundo!", então retorna: Olá mundo!

      Exemplo 2:   a = "SORTEIO_DATA" , sendo que o campo SORTEIO_DATA="11/11/2016", então retorna: 11/11/2016

2.) Sugestão de link de cursos ???

3.) Algum comparativo de performance com Assembly ou C ???

 

Um abraço!

Link to comment
Share on other sites

1 hora atrás, dois disse:

 

 

Muitíssimo obrigado pela sugestão !!!

 

Em programação minha "área de conforto" é CLIPPER/Dbase ... é isso mesmo!!!

aquele que roda em DOS compatível até 32 bits e este é o problema !!!

 

Tempos atrás me indicaram HARBOUR como "sucessor natural"...

Também iniciei estudos na linguagem C ...

Não adianta sempre necessita se adaptar à linguagem, por isso

continuo pensando em partir "pra porrada", ou seja, Assembly.

 

Também continuo tentando aceitar as gambiarras do VBA/EXCEL...

SIM, considero como gambiarra mesmo, porque o meu conceito é

que numa linguagem tudo que é nativo é processado mais rápido.

 

Mas agora mesmo parei a rotina que estou criando, pois fiquei irritado...

então não seria satisfatório nem produtivo continuar...

 

Enfim... Mais uma vez, muitíssimo obrigado pela sugestão !!!

 

Um abraço!

 

 

dois,

 

Acabei deixando de fazer comentário sobre Assembly...

Você tem razão quanto a querer partir pra porrada usando o Assembly. Não vai ter nada tão rápido quanto o Assembly.

Já tentei ir por esse caminho mas acabei parando pelo tempo que eu "achei" que fosse necessitar para aprender Assembly. Afinal, não sou da área de programação.

 

Mas acabei conhecendo uma pessoa da Europa que fez programas em Assembly para as loterias de lá.

 

São ultra rápidos... mais de 300.000.000 de linhas de 7 dezenas geradas por segundo....

 

 

 

Link to comment
Share on other sites

58 minutos atrás, DixieJoe disse:

dois,

 

Eu tive que aprender a programar para o meu gasto (estudo das loterias, apenas, nada comercial) e andei passando por 3 linguagens diferentes ao longo de mais de 15 anos.

 

Acabei ficando no Delphi. Versão melhorada (em termos de programação, claro) do velho Pascal.

 

Mesmo com o Delphi, tive que criar muitas funções e rotinas para agilizar alguns processamentos que costumam ser pesados em qualquer linguagem.

 

Minhas rotinas hoje são baseadas num tipo interno que acabei aprendendo a usar (o SET do Delphi). Esse tipo tem muita flexibilidade e pude descobrir como adaptar para estudar as loterias: geração de jogos e, principalmente, filtragem de jogos.

 

Caso eu possa ajudar, estou à sua disposição.

 

Se precisar de alguma coisa relativa à Lotofacil, quem sabe já tenha algumas funções prontas que você possa usar ou adaptar.

 

De outro lado, caso queira me dizer do que precisa exatamente, pode ser que eu consiga fazer usando as centenas de funções e rotinas que já tenho prontas no Delphi.

 

Por exemplo, o que está fazendo exatamente essa rotina demorada no Excel?

 

Se puder, entre no Skype para teclarmos por lá.

 

 

Olá amigo e parceiro DixieJoe,

 

Por favor vamos conversar agora no Skype ???

 

 

EU ME LEMBRO!!!

baixei alguma coisas do POWER BASIC !!!

 

 

Link to comment
Share on other sites

Guest Zangado
45 minutos atrás, dois disse:

 

 

 

Muitíssimo obrigado pela sugestão !!!

baixei algumas coisas e estou dando uma olhada,;;

 

Vocês podem me esclarecer quanto a:

1.) Possui recurso macrosubstituição ???

      O que é: Permite o uso do que está dentro de uma variável.

      Exemplo 1:   a = "Array_A(1)" , sendo que Array_A(1)="Olá mundo!", então retorna: Olá mundo!

      Exemplo 2:   a = "SORTEIO_DATA" , sendo que o campo SORTEIO_DATA="11/11/2016", então retorna: 11/11/2016

2.) Sugestão de link de cursos ???

3.) Algum comparativo de performance com Assembly ou C ???

 

Um abraço!

ola dois
acho que qualquer linguagem faz isso , afinal são variaveis e arrays
com assembler que vai ser muito mais complicado pq se trata sempre com endereços de memória diretos


sobre essa rotina sua de dias talvez reformulando

por exemplo

se tratar range e cells diretamente é super demorado dentro de loops, ainda mais multiplos

passando para arrays se tem um ganho considerado de velocidade

se tem uma rotina na base de bilhões de interaçãos se pode fazer um pré tratamento de dados

tipo jogar os dados para um array de bytes e indexados

isso torna o processo muito rapido já que é praticamente direto

 

bem tem muitas maneiras de otimizar

claro que o vba nunca vai ser tão rapido quanto essas outras linguagens mas tem como tornar bilhões de interações bem rapido

Link to comment
Share on other sites

2 horas atrás, edcronos2 disse:

ola dois
acho que qualquer linguagem faz isso , afinal são variaveis e arrays
com assembler que vai ser muito mais complicado pq se trata sempre com endereços de memória diretos


sobre essa rotina sua de dias talvez reformulando

por exemplo

se tratar range e cells diretamente é super demorado dentro de loops, ainda mais multiplos

passando para arrays se tem um ganho considerado de velocidade

se tem uma rotina na base de bilhões de interaçãos se pode fazer um pré tratamento de dados

tipo jogar os dados para um array de bytes e indexados

isso torna o processo muito rapido já que é praticamente direto

 

bem tem muitas maneiras de otimizar

claro que o vba nunca vai ser tão rapido quanto essas outras linguagens mas tem como tornar bilhões de interações bem rapido

 

 

Olá irmão e parceiro edcronos2,

 

Se puder me passar exemplo(s) de codificação para as 2  questões mencionadas,

fico muito agradecido:

 

 

Um abraço!

Link to comment
Share on other sites

4 horas atrás, abc.antonio disse:

Dois, 

Como solicitastes a respeito de cursos de Python, foram-me indicados 2, os quais repasso:

 

Prof. Fernando Massanori   =   http://pycursos.com/python-para-zumbis/

 

Prof.  Ronaldo F Ramos   =   https://www.youtube.com/watch?v=-x-Le_podxo&list=PL51430F6C54953B73

 

 

 

Olá amigo abc.antonio,

 

Só agora pude ver esta sua postagem,

pois, finalmente, estive no Skype com o amigo e parceiro DixieJoe,

Foi muito proveitoso, foram quase 3 horas trocando idéias !!!

 

Muitíssimo obrigado pelas sugestões !!!

 

Um abraço!

Link to comment
Share on other sites

10 horas atrás, abc.antonio disse:

Python

 

7 horas atrás, Fernandes20 disse:

Sugiro aprender python,

 

 

Estou olhando com bastante calma...

Já me interessei por 2 (DOIS) recursos:

  1. Numpy : è um pacote de bibliotecas científicas e com várias rotinas matemáticas.
  2. Dicionários: São estruturas de dados que contém pares de chave-valor. São parecidos com as listas.

 

Um abraço !

Link to comment
Share on other sites

Guest Zangado
10 horas atrás, dois disse:

 

 

Olá irmão e parceiro edcronos2,

 

Se puder me passar exemplo(s) de codificação para as 2  questões mencionadas,

fico muito agradecido:

 

 

Um abraço!

,eu teria que saber se vc sabe trabalhar bem com arrays primeiro

mas basicamente  é o seguinte

array=range

array_byte_valor(X)=1

 

loop array_byte_valor

 

quando se tem muitas interações de dados fazer um pré tratamento desses melhora muito a velocidade

mas primeiro vc tem que dominar bem os arrays "pegar da planilha", "varrer", "colar na planilha"

isso pq loop de range direto é bastante custoso

vba com array vai trabalhar direto na memoria e não vai ficar pedindo acesso ao excel

 

sobre o array indexado é quase igual a definição de bit ou aos dicionários

com vba tbm dá para  fazer o tratamento de bit igual o @DixieJoe faz

tipo usar cada bit do valor como uma dezena inteira, infelizmente  esse processo não é facilmente compreendido e tem limitações dos comparadores logicos ,  tipo o tamanho da palavra 16-32-64 bits , para fazer uso na quina , time e lmania teria que fazer uso de palavras de 128b

o para bit se pode trabalhar com cada resultado em cima de uma só variavel long 32b, isso para a lf daria um array de long de apenas 1454 endereços

e para o resultado 1454 os bits seriam esses

32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
                                                               
0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0

 

como pode ver uma unica variavel long pode guardar toda uma linha de resultado

mas como pode ver trabalhar com isso tem suas limitações e ou complicações já que não dá para verificar ou modificar o bit diretamente e tem que usar artifícios lógicos para isso como AND, OR ,NOT

isso melhora consideravelmente a velocidade pq usa menos loops da cpu para fazer endereçamento de memoria
para trabalhar com quina para cima teria que ter acumulo de palavra e tratar mais  variaveis long de cada vez

infelizmente acho que não tem maneiras praticas e diretas de trabalhar bit em nenhuma linguagem, pelo que li todas usam artificios para testar ou modificar os bits

com arrays dá para facilitar um pouco mas não usar completamente o objetivo dos bits

e como a menor palavra possivel do array é o byte em cada endereço de memoria se tem apenas 8 valores

apesar que eu não sei como o vba trabalha array de boolenos vou testar agora

Link to comment
Share on other sites

Guest Zangado

fui fazer um teste rapido

não sei se efetuei o test corretamente mas

os tempos foram esses

  byte boolean Long
inicio 14:59:40 15:00:15 15:00:48
final 15:00:15 15:00:48 15:01:22
       
interações  462894040 462894040 462894040
tempo 00:00:35 00:00:33 00:00:34

 

 

por algum motivo em array indexado o tipo long se saiu melhor do que o byte e o booleano foi o melhor entre eles

esse tempo tbm conta com a passagem de dados da planilha para um array variant e desse array para o array do tipo byte,boolean e long,
 

 

vou medir esse tempo de loop tbm em cima do tipo variant direto

 

 

na verdade a quantidade de loop é bem maior , é que eu coloquei o contador dentro do teste de valor então só

era incrementado quando o teste era possitivo
quando se tem apenas um teste tipo booleano sem comparação de valores, a diferença dos tempo é minima até para o tipo variante, quando se tem comparação de valores o variante tem o tempo bem incrementado


o meu pc não está ajudando e meu mouse está horrivel

 

bem, para cada situação acho que se tem que definir o tipo que se vai utilizar

colocando o valor na posição de memoria e testando se naquela possição se tem o tal valor os tempo são um tanto confusos

 

if array(l.c)=valor

  byte bolean Long variant
inicio 16:00:05 16:00:57 16:01:34 16:02:24
final 16:00:57 16:01:34 16:02:24 16:03:13
         
interções  771147840 771147840 771147840 771147840
tempo 00:00:52 00:00:37 00:00:50 00:00:49

aqui o variant ganha dos outros no tempo

lembrando que o bolean não tem como colocar o valor na variavel é só 1 ou 0

 

teste tipo if valor ">" , com boolean "=true"
 

  byte bolean Long variant
inicio 15:31:19 15:31:59 15:32:37 15:33:16
final 15:31:59 15:32:37 15:33:16 15:34:05
         
interções  771147840 771147840 771147840 771147840
tempo 00:00:40 00:00:38 00:00:39

00:00:49

Edited by Zangado
Link to comment
Share on other sites

Guest Zangado

particularmente achei os tempos bem maiores no quesito de espera

talvez pela interação do vba e do excel no inicio e final de cada teste

tbm achei um pouco discrepante as diferenças dos tempo entre variante, long e byte

dentre eles o byte é o que ocupa menos memoria

e o variate é oq ocupa mais

não sei se é o modo como eu monto minhas rotinas que isso fica indiferente

ou talvez como o vba percorre os trecho de dados dentro um endereço unico de memoria

byte economiza memoria, mas o vba tem que fazer comparação bit a bit separadamente

enquanto variante gasta muito mais memoria mas a comparação é direta no valor

sei lá não entendi essa , no modo como eu aprendi de inicio o byte era muito mais rapido , mas depois que fui otimizando meu modo de montar as macros não tinha mais efetuado testes

 

Sub test()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
testbyte
testboolean
testLong
testvariant
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

 

não fiz nenhuma limpeza de memoria ou de qualquer outra coisa nos teste o que pode ocasionar discrepâncias nos tempos  

 

  total tempo byte bolean Long variant
inicio 16:17:22 16:17:22 16:18:14 16:18:52 16:19:42
final 16:20:31 16:18:14 16:18:52 16:19:42 16:20:31
           
interções    771147840 771147840 771147840 771147840
tempo 00:03:09 00:00:52 00:00:38 00:00:50 00:00:49
Link to comment
Share on other sites

13 horas atrás, dois disse:

 

 

 

Estou olhando com bastante calma...

Já me interessei por 2 (DOIS) recursos:

  1. Numpy : è um pacote de bibliotecas científicas e com várias rotinas matemáticas.
  2. Dicionários: São estruturas de dados que contém pares de chave-valor. São parecidos com as listas.

 

Um abraço !

 

O Python é bem mais simples e já vem com várias funções implementadas, em C vc teria que fazer tudo manual.

 

 

Curso básico:

http://aprenda-python.blogspot.com.br/2010/09/curso-gratuito-de-python-em-portugues.html

 

 

 

Link to comment
Share on other sites

7 horas atrás, edcronos2 disse:

,eu teria que saber se vc sabe trabalhar bem com arrays primeiro

mas basicamente  é o seguinte

...

...

 

6 horas atrás, edcronos2 disse:

fui fazer um teste rapido

não sei se efetuei o test corretamente mas

os tempos foram esses

...

...

     

 

4 horas atrás, edcronos2 disse:

particularmente achei os tempos bem maiores no quesito de espera

talvez pela interação do vba e do excel no inicio e final de cada teste

...

...

 

 

Olá irmão e parceiro edcronos2,

 

Você realmente é fera...

Não chego nem perto destes resultados...

 

Reitero o convite pra que se junte a nós !!!

 

 

Um abraço!

 

Link to comment
Share on other sites

2 horas atrás, Fernandes20 disse:

 

O Python é bem mais simples e já vem com várias funções implementadas, em C vc teria que fazer tudo manual.

 

 

Curso básico:

http://aprenda-python.blogspot.com.br/2010/09/curso-gratuito-de-python-em-portugues.html

 

 

 

 

F-A-N-T-Á-S-T-I-C-O !!!

 

o atube Já está baixando aqui !!!

 

 

Muitíssimo obrigado !!!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...