Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 144
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Ya estoy confundido)
Tienes una matriz:
¿Qué debería devolver finalmente la función y por qué? El número de aciertos para cada número, o un número máximo específico, o ... ¿He escrito algo, pero debe estar mal, y mal?
No sé cómo explicar...
Vemos una matriz:1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3,
Marcamos los números idénticos con el mismo color (si sólo hay un número, no hay duplicado para él, no es necesario):
1, 2, 3, 1, 2 , 1 , 2, 2, 1, 1, 3, 3 , 3, 3 , 3 , 3, 3 , 3, 3, 3,3
Cuenta el número de números con diferentes colores: 3 - este es el resultado.
Has comprobado el código antiguo. Vuelve a comprobarlo.
No sé cómo explicar...
Vemos una matriz:1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3,
Marcamos los números idénticos con el mismo color (si sólo hay un número, no hay doble para él - no es necesario):
1, 2, 3, 1, 2, 1, 2, 2, 1, 1, 3 , 3 , 3, 3 , 3 , 3, 3 , 3, 3, 3,3
Cuenta el número de números con diferentes colores: 3 - este es el resultado.
Tal vez)
{
int Arr[]={1, 2, 3, 1, 2, 1, 2, 2, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3};
Comment( GetM(Arr) );
}
int GetM(int &Mas[])
{
int MasTemp[][2]; // Временный массив
int c=0,t=0;
ArraySort(Mas);
int ArrSize= ArraySize(Mas);
for(int i=0; i<ArrSize; i++) {
for(int x=i; x<ArrSize; x++) {
if(Mas[i]==Mas[ArrayMinimum(Mas,WHOLE_ARRAY,x)]) {
c++;
}
}
if(c>0) {
t++;
ArrayResize(MasTemp,t);
MasTemp[t-1][0]= c;
MasTemp[t-1][1]= Mas[i];
}
c=0;
}
int ArrRange=ArrayRange(MasTemp,0);
if(ArrRange>0) {
ArraySort(MasTemp);
// Comment("Цифра: ",MasTemp[ArrRange-1][1],", Количество: ",MasTemp[ArrRange-1][0]);
return( MasTemp[ArrRange-1][1] );
}
return(-1);
}
Hay ... Soy un bicho raro... Pensé que venía de allí, pero vino de otro lugar.
template <typename T>
int Strange( const T &InArray[], const int Repeat = 2 )
{
int Res = 0;
T Array[];
const int Size = ArraySize(InArray);
if ((ArrayCopy(Array, InArray) == Size) && ArraySort(Array))
{
int Tmp = 1;
for (int i = 1; i < Size; i++, Tmp++)
if (Array[i - 1] != Array[i]) // если будут структуры, то есть более универсальная запись
{
if (Tmp >= Repeat)
Res++;
Tmp = 0;
}
if (Tmp >= Repeat)
Res++;
}
return(Res);
}
void OnStart()
{
int Array[] = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4};
for (int i = 1; i <= 4; i++)
Print(Strange(Array, i));
}
Resumido
Tal vez)
Resumido por
Esto es interesante
Con esta notación, un Array no sólo puede ser un tipo numérico, sino cualquier estructura simple.
Otra cosa es que ArraySort para estructuras, por supuesto, no funciona.
Con esta notación, un Array no sólo puede ser un tipo numérico, sino cualquier estructura simple.
Otra cosa es que ArraySort para estructuras, por supuesto, no funciona.
Exactamente... Pero las estructuras suelen ser muy complejas. Y todavía hay que clasificarlos...
Los complejos contienen objetos (cadenas, por ejemplo).
MqlTick es una estructura simple.
MqlTradeRequest - complejo.
ArraySort se puede escribir fácilmente para estructuras simples.