Toute question d'un PROFI à un SUPER PROFI - 1. - page 17

 
Ai-je raison de supposer que je dois convertir les chaînes de caractères en un tableau d'entiers ?
 
hrenfx:
Ai-je raison de supposer que je dois convertir les chaînes de caractères en un tableau d'entiers ?
Vers Unicode. Le tableau d'entiers doit juste être substitué à la DLL.
 

Ça ?

#define SIZEOF_INT 4
#define BYTE_BITS 8
#define SIZEOF_ANSI 1
#define SIZEOF_UNICODE 2

void StringToINT( string Str, int& Buffer[], bool UniCode = FALSE )
{
  int Koef;
  
  if (UniCode)
    Koef = SIZEOF_UNICODE;
  else
    Koef = SIZEOF_ANSI;
    
  int i = 0, j, Len = StringLen(Str);
  int Pos = 0, Size =  Koef * Len / SIZEOF_INT;
    
  if ((Koef * Len) % SIZEOF_INT > 0)
    Size++;
    
  ArrayResize(Buffer, Size);
    
  while (i < Len)
  {
    Buffer[Pos] = 0;
    
    for (j = 0; j < SIZEOF_INT / Koef; j++)
    {
      if (i < Len)
        Buffer[Pos] |= StringGetChar(Str, i) << (Koef * j * BYTE_BITS);
        
      i++;
    }
    
    Pos++;
  }
  
  return;
}

string INTToString( int& Buffer[], bool UniCode = FALSE )
{
  string Str = "";
  int Tmp, Size = ArraySize(Buffer);
  int Koef;
  
  if (UniCode)
    Koef = SIZEOF_UNICODE;
  else
    Koef = SIZEOF_ANSI;
  
  for (int i = 0; i < Size; i++)
  {
    Tmp = Buffer[i];
    
    while (Tmp != 0)
    {
      Str = Str + CharToStr(Tmp & 0xFF);
      
      Tmp >>= Koef * BYTE_BITS;
    }
  }  
  
  return(Str);
}

void start()
{
  int Buffer[];
  string Str = "abcde";
  
  StringToINT(Str, Buffer, FALSE); // ANSI
  Str = INTToString(Buffer, FALSE); // ANSI
  Print(ArraySize(Buffer));

  Print(Str);

  StringToINT(Str, Buffer, TRUE); // UNICODE
  Str = INTToString(Buffer, TRUE); // UNICODE  

  Print(ArraySize(Buffer));
  Print(Str);
  
  return;
} 
 

Merci à tous pour votre aide et votre participation.

à la page 15 - Zhunko et TheXpert m'ont déjà indiqué la bonne direction et j'ai presque tout fait correctement :)


Mais par inexpérience, j'ai oublié et envoyé la fonction MultiByteToWideChar au lieu de CP_ACP à CP_UTF8

Dieu merci, Ilnur est arrivé et a corrigé mon code, sinon je voulais abandonner ce robot dans MT4.


Merci encore à tous pour la solution, nous sommes une bande ensemble !:)

 
Dossiers :
 

Je développe un indicateur qui incorpore une cloche de distribution normale. Par conséquent, voici le problème à résoudre.

Pour estimer la signification statistique des résultats obtenus, nous devons trouver la valeur de l'écart-type d'un processus aléatoire au moment du test N. Dans ce cas, l'espérance mathématique est connue à l'avance et est égale à zéro, tandis que la probabilité du résultat positif (+1) de chaque essai est égale à la probabilité du résultat négatif (-1) et est égale à 0,5.

Exemple 1. Deux joueurs vont jouer au jeu de l'aigle jusqu'à ce qu'ils réussissent 1000 tirages à pile ou face. Déterminez les limites de l'intervalle dans lequel l'un d'eux gagnera et l'autre perdra avec une probabilité de 99,7 %.

C'est-à-dire qu'il suffit de trouver une formule pour cette même courbe sigma. Je sais, le problème est vieux comme le monde et je sais moi-même comment calculer ces écarts sur la base de la séquence disponible (MNC), mais j'ai besoin de le calculer par lui-même, sans BP lui-même.

 
C-4:

Je développe un indicateur qui incorpore une cloche de distribution normale. Par conséquent, voici le problème à résoudre.

Pour estimer la signification statistique des résultats obtenus, nous devons trouver la valeur de l'écart-type d'un processus aléatoire au moment du test N. Dans ce cas, l'espérance mathématique est connue à l'avance et est égale à zéro, tandis que la probabilité d'un résultat positif (+1) de chaque essai est égale à la probabilité d'un résultat négatif (-1) et est égale à 0,5 en conséquence.

Exemple 1. Deux joueurs vont jouer au jeu de l'aigle jusqu'à ce qu'ils réussissent 1000 tirages à pile ou face. Déterminez les limites de l'intervalle dans lequel l'un d'eux gagnera et l'autre perdra avec une probabilité de 99,7 %.

C'est-à-dire qu'il suffit de trouver une formule pour cette même courbe sigma. Je sais, le problème est vieux comme le monde, et je sais moi-même comment calculer ces écarts sur la base de la séquence disponible (OLS), mais j'ai besoin de le calculer tout seul, sans BP.

C-4,

Pour une distribution binomiale, ce qui est le cas ici (et qui se rapproche bien d'une distribution normale lorsque N est grand), l'écart-type (sigma) est sqrt(N*p*q), où N est le nombre d'essais, p est la probabilité d'un gain unique, q = 1-p est la probabilité d'une perte unique.

racine ajoutée))))

 

C'est-à-dire sqrt(1000*0,5*0,5) = sqrt(250) = 15,81

Par conséquent, 99,7% s'inscrivent dans une fourchette de plus ou moins trois sigmas 3*15,81 = 47,434

 
En général, pour déterminer approximativement tout quantile du schéma binomial, on peut utiliser le théorème de l'intégrale de Mois-Laplace (google). Les valeurs de la fonction F(x) sont bien tabulées, et il existe des algorithmes qui effectuent l'intégration numérique. Le problème est standard, il a donc déjà été résolu un million de fois).
 
alsu:

C'est-à-dire, sqrt(1000*0,5*0,5) = sqrt(250) = 15,81

Par conséquent, 99,7% d'entre eux se situent dans une fourchette de plus ou moins trois sigmas 3*15,81 = 47,434


Merci pour le conseil. Mais pour une raison quelconque, la fonction semble un peu étroite :

500 SB ont été utilisés et, d'une manière ou d'une autre, il ne semble pas que 99,7% d'entre eux s'inscrivent dans une fourchette de trois sigmas.

Raison: