Ajuda em matriz php
09/08/2023
0
Boa tarde a todos, alguem poderia me dar uma luz em PHP. A parte de bd, guardar na matriz eu consigo.
Estou desenvolvendo um sistema aqui na empresa que trabalho, onde o objetivo é dado um numero de elementos numa matriz fazer a seguinte combinação:
exemplo: tenho um material embalado em big bags numerados de 1 a 10, porem preciso unir os 3 big bags e na media dos 3 verificar se atende a um determinado cliente com uma analise pre estabelecida entre os valores maximos e minimos.
ca: 70-80
ba: 65-75
mg: 80-92
big bag produto ca ba mg
1 xxxxxx 83 65 95
2 xxxxxx 72 65 79
3 xxxxxx 70 65 90
4 xxxxxx 68 65 84
5 xxxxxx 81 65 84
6 xxxxxx 75 65 86
7 xxxxxx 82 65 87
8 xxxxxx 83 65 94
9 xxxxxx 76 65 80
10 xxxxxx 79 65 88
esses valores estarão dentro de uma matriz
preciso que o sistema percorra a matriz iniciando pelos bigbags 1,2 3 tire a media dos 3 elementos se atender essa condição grave os valores 123 como ok e continua percorrendo agora nos bags 1,2 e 4, repita o processo do primeiro e segue 1,2,5 até 8,9,10. depois disso me fale quantas opções verdadeiras que posso misturar pra atender esse cliente.
123,124,125,126,127,128,129,1210
134,135,136,137,138,139,1310
145,146,147,148,149,1410
156,157,158,159,1510
167,168,169,1610
178,179,1710
189,1810
1910
234,235,236,236,238,2310
245,246,247,248,249,2410
256,257,258,259,2510
267,268,269,2610
278,279,2710
289,2810
2910
345,346,347,348,349,3410
356,357,358,359,3510
367,368,369,3610
378,379,3710
389,3810
3910
456,457,458,459,4510
467,468,469,4610
478,479,4710
489,4810
4910
567,568,569,5610
578,579,5710
589,5810
5910
678,679,6710
689,6810
6910
789,7810
7910
8910
nesse caso com 10 bags o sistema fará 120 iterações verificando em cada uma se atende atraves da media dos 3 bags quantas e quais iterações atende o cliente.
Desde já agradeço a ajuda de todos.
Estou desenvolvendo um sistema aqui na empresa que trabalho, onde o objetivo é dado um numero de elementos numa matriz fazer a seguinte combinação:
exemplo: tenho um material embalado em big bags numerados de 1 a 10, porem preciso unir os 3 big bags e na media dos 3 verificar se atende a um determinado cliente com uma analise pre estabelecida entre os valores maximos e minimos.
ca: 70-80
ba: 65-75
mg: 80-92
big bag produto ca ba mg
1 xxxxxx 83 65 95
2 xxxxxx 72 65 79
3 xxxxxx 70 65 90
4 xxxxxx 68 65 84
5 xxxxxx 81 65 84
6 xxxxxx 75 65 86
7 xxxxxx 82 65 87
8 xxxxxx 83 65 94
9 xxxxxx 76 65 80
10 xxxxxx 79 65 88
esses valores estarão dentro de uma matriz
preciso que o sistema percorra a matriz iniciando pelos bigbags 1,2 3 tire a media dos 3 elementos se atender essa condição grave os valores 123 como ok e continua percorrendo agora nos bags 1,2 e 4, repita o processo do primeiro e segue 1,2,5 até 8,9,10. depois disso me fale quantas opções verdadeiras que posso misturar pra atender esse cliente.
123,124,125,126,127,128,129,1210
134,135,136,137,138,139,1310
145,146,147,148,149,1410
156,157,158,159,1510
167,168,169,1610
178,179,1710
189,1810
1910
234,235,236,236,238,2310
245,246,247,248,249,2410
256,257,258,259,2510
267,268,269,2610
278,279,2710
289,2810
2910
345,346,347,348,349,3410
356,357,358,359,3510
367,368,369,3610
378,379,3710
389,3810
3910
456,457,458,459,4510
467,468,469,4610
478,479,4710
489,4810
4910
567,568,569,5610
578,579,5710
589,5810
5910
678,679,6710
689,6810
6910
789,7810
7910
8910
nesse caso com 10 bags o sistema fará 120 iterações verificando em cada uma se atende atraves da media dos 3 bags quantas e quais iterações atende o cliente.
Desde já agradeço a ajuda de todos.
Helder Leite
Curtir tópico
+ 0
Responder
Posts
09/08/2023
Arthur Heinrich
Isso é uma combinação (10,3) "dez, três a três". A quantidade de combinações N é dada por 10!/(3!.(10-3)!) = 120.
Para resolver na força bruta, tem que fazer 3 loops, um dentro do outro:
for i = 1 to 8 do
for j = i+1 to 9 do
for k = j+1 to 10 do
Checa se a combinação dos elementos i, j e k atente
Para resolver na força bruta, tem que fazer 3 loops, um dentro do outro:
for i = 1 to 8 do
for j = i+1 to 9 do
for k = j+1 to 10 do
Checa se a combinação dos elementos i, j e k atente
Responder
Clique aqui para fazer login e interagir na Comunidade :)