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

 
IgorM:

Je veux stocker les données de manière compacte - une ligne, un entier.

Ça ne marchera pas. Il faut 3 bits pour coder 6 valeurs. Le nombre entier a 32 bits, il faut 36 bits pour coder 12 nombres.

La question est de savoir pourquoi vous avez besoin d'un stockage compact. Il est fort probable que l'objectif final soit différent et réalisable d'une manière différente.

 
TheXpert:

Ça ne marchera pas. Il faut 3 bits pour coder 6 valeurs. Le nombre entier a 32 bits, il en faut 36 pour coder 12 nombres.

Oui, il est probablement plus facile de faire comme granit77 a conseillé.
 

Eh bien... comme une option.

granit77:
Décalez dans la région positive de 2 unités pour supprimer 0 et -1 (suivi d'une restauration après lecture) et vous pouvez facilement former un nombre entier.
Il est possible d'écrire leurs index au lieu des nombres eux-mêmes, alors n'importe quels nombres peuvent être générés. L'essentiel est de ne pas dépasser 10... Bien qu'en y regardant de plus près, il n'y en a pas plus de 36 au moins.
 

Vous pouvez également utiliser la répétition des données (comme dans la compression d'images). Ou bien, vous pouvez écrire des valeurs différentes dans le même espace mémoire. Vous pouvez économiser sur les index en donnant un seul nom à toutes sortes de choses. Vous pourriez même créer un tel service - il serait très demandé :)

 
IgorM:


| 4,4,1,2,1,1, 1,1,1,1,1,1 |
| 3,3,3,3,3,3, -1,-1,-1,-1,-1,-1|

Je veux stocker des données de manière compacte - une ligne, un entier...


Passer à la notation pentamétrique où je peux convertir une chaîne de chiffres en un seul. Pour le binaire, j'avais des fonctions prêtes à être utilisées

 
Vinin:


Passez à un système numérique pentatonique où vous pouvez convertir une chaîne de chiffres en un seul. Pour le binaire, j'avais des fonctions toutes faites

J'y ai déjà pensé, il n'existe pas d'appareil mathématique prêt à l'emploi pour stocker plusieurs nombres à 5 chiffres dans un seul int ?
 
IgorM:
J'y ai déjà pensé, il n'y a pas de matrice toute faite pour stocker plusieurs nombres à 5 chiffres dans un seul int ?

Il ne faut pas longtemps pour en faire un. Tant pour l'encodage que pour le décodage
 

La formule suivante peut être utilisée pour le codage

{a1,a2,a3,a4,a5}

N=a1*5^4+a2*5^3+a3*5^2+a4*5^1+a5*5^0;

Le décodage est un peu plus compliqué. Mais si nous passons à une boucle, il n'y a pas de problème avec les deux

a5=N%5 ;

N=(N-a5)/5 ;

a4=N%5 ;

N=(N-a4)/5 ;

a3=N%5 ;

N=(N-a3)/5 ;

a2=N%5 ;

a1=(N-a2)/5 ;

 

Je ne peux même pas formuler une requête pour un moteur de recherche :((((

Je veux faire une sorte de comparaison de similarité ? corrélation ? de plusieurs matrices avec des données numériques.

comme ça :

matrice1 : matrice2 :

| 4,4,1,2,1,1, 1,1,1,1,1,1 | | 4,4,1,2,1,1, 1,1,1,1,1,1 |
| 4,4,1,2,1,1, 1,1,1,1,1,1 | | 4,4,1,1,1,1, 1,1,1,1,1,1 |
| 4,4,4,2,1,1, 1,1,1,1,1,1 | | 4,4,4,2,1,1, 1,2,1,1,1,1 |

les matrices données présentent des différences minimes, comment peut-on analyser cela de manière programmatique ?

 
IgorM:

Je ne peux même pas formuler une requête pour un moteur de recherche :((((

Je veux faire une sorte de comparaison de similarité ? corrélation ? de plusieurs matrices avec des données numériques.

comme ça :

matrice1 : matrice2 :

| 4,4,1,2,1,1, 1,1,1,1,1,1 | | 4,4,1,2,1,1, 1,1,1,1,1,1 |
| 4,4,1,2,1,1, 1,1,1,1,1,1 | | 4,4,1,1,1,1, 1,1,1,1,1,1 |
| 4,4,4,2,1,1, 1,1,1,1,1,1 | | 4,4,4,2,1,1, 1,2,1,1,1,1 |

les matrices données présentent des différences minimes, comment peut-on analyser cela de manière programmatique ?


si si et si encore. Je commencerais avec a1a1