erro em lista de iteração com números aleatórios
Olá para todos.
Eu estava fazendo a seguinte construção:
Dada uma piramide de vértices A, B, C, D e um ponto E aleatório interno a essa pirâmide e uma lista de números inteiros de 1 a 8 que devem ser sorteados, Construir a seguinte lista de pontos. partindo de E, marcar o ponto médio entre E e D, se após o sorteio o número for 1 ou 2, entre E e B, se o número sorteado for 2 ou 3, e por aí vai.
para simular o sorteio, usei uma lista de números aleatórios, associada ao seguinte comando:
ListaDeIteração(PontoMédio(X, Se(1 ≤ NúmeroAleatório(1, 8) ≤ 2, D, Se(3 ≤ NúmeroAleatório(1, 8) ≤ 4, B, Se(5 ≤ NúmeroAleatório(1, 8) ≤ 6, C, A)))), X, {E}, 5000)
A princípio, o comando funciona muito bem e obtenho o resultado esperado, porém após salvar o arquivo e fechar o programa, acontece um fenômeno interessante: O programa elimina o comando número aleatório e cria um número estático, alterando a construção. Quando olho as propriedades da construção o comando passa a ser: ListaDeIteração(PontoMédio(X, Se(1 ≤ 6 ≤ 2, D, Se(3 ≤ 4 ≤ 4, B, Se(5 ≤ 5 ≤ 6, C, A)))), X, {E}, 5000).
Seguem as imagens da construção antes de fechar o programa e depois de abrir o programa.
No caso, quando eu abro novamente o arquivo, A construção é alterada de modo que perco a construção original. dessa forma tenho que alterar o comando para ter recuperar a construção original. Como posso solucionar esse problema?
Agradeço desde já as propostas de solução.
Please post your .ggb file
IterationList(Midpoint(X, If(1 ≤ RandomBetween(1, 8) ≤ 2, D, If(3 ≤ RandomBetween(1, 8) ≤ 4, B, If(5 ≤ RandomBetween(1, 8) ≤ 6, C, A)))), X, {E}, 5000)
when i close the program, the comand RandomBetween(1, 8) disapears
segue um link com o vídeo explicando o erro:
https://youtu.be/nG-3N4jTt9s
I am afraid that great number of points do the device overflows
change to 1000 iterations.
Iwill do this, here.
corrijo: he hecho pruebas con solo 10 puntos y presionando F9 da errores desde el principio
así que he rehecho el trabajo un poco más simple y creo que funciona hasta con 1000
Does it work if you change
to and
to etc?
thank you, I will try it
I have only a Workaround. The following command make the same and is after save restore unchanged.
l1 = IterationList(Midpoint(X, RandomElement({A, B, C, D})), X, {E}, 5000)
.
But now I have a new Bug:
If A=Point(yAxis) then RandomElement(A,B,C,D) bring only for A a value. The other 3 values are undefined.
RandomElement(A,B,C,D) inside the IterationList bring only with the first iteration (value = E) a result.
Workaround for the new Bug: Define A as full-free point. (D is also semi-free, but not must be change to full-free !!?!! Note: RandomElement(C,B,A.E)) also not works (?), although C is full-free.)
Obrigado a todos que contribuíram com suas ricas ideias para otimizar minha humilde construção.
Aprendi novas abordagens simples que sequer passaram pela minha mente.
Muito obrigado
Comments have been locked on this page!