PROFIからSUPER PROFIへの質問-1. - ページ 25

 
IgorM:

1行1整数のようにコンパクトにデータを格納したい

うまくいかない。6つの値を符号化するには3ビットが必要です。整数は32ビットなので、12個の数字を符号化するには36ビットが必要です。

問題は、なぜコンパクトな収納が必要なのか、ということです。ほとんどの場合、最終的なゴールは別の方法で達成可能なものです。

 
TheXpert:

うまくいかない。6つの値を符号化するのに3ビット必要です。整数は32ビットなので、12個の数字を符号化するには36ビット必要です。

そうですね、granit77さんのアドバイスのようにするのが簡単かもしれません。
 

まあ...選択肢の一つとして。

granit77:
正の領域に2単位シフトして0と-1を取り除く(読み取った後に復元する)と、簡単に整数を形成することができます。
数字そのものではなく、そのインデックスを記述することで、任意の数字を生成することが可能である。主なものは、10を超えないこと...しかし、よくよく考えてみると、少なくとも36以上はない。
 

また、データの繰り返しを利用することもできます(画像圧縮のように)。あるいは、同じメモリスペースに異なる値を書き込むことも可能です。いろいろなものに一つの名前をつけることで、インデックスを節約することができるかもしれません。そんなサービスを作ってもいいかもしれませんね、需要がありそうです :)

 
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|

データをコンパクトに格納したい - 1行、1つの整数


数字の羅列を1つに変換できるペンタム記法に変更する。バイナリについては、関数を用意しておきました

 
Vinin:


数字の羅列を1つに変換できる5進数方式に切り替える。バイナリについては、既成の関数がありました

もう考えたんですが、1つのintに複数の5桁の数字を格納するような既成の演算装置はないんでしょうか?
 
IgorM:
すでに考えていたことですが、1つのintに複数の5桁の数字を格納するマトリックスは用意されていないのでしょうか?

作るのに時間はかかりません。エンコード、デコードとも
 

コーディングには、以下の式を用いることができます。

{a1,a2,a3,a4,a5}のようになります。

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

デコードはもう少し複雑です。しかし、ループにすると、両者とも問題なく

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とする。

 

検索エンジンのクエリを作成することもできない :((

複数の行列を数値データで比較したいのですが、どのような方法がありますか?

このように

matrix1: matrix2:

| 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 |

与えられた行列に最小限の差異がある場合、プログラム的にどのように分析すればよいのでしょうか?

 
IgorM:

検索エンジンのクエリを作成することもできない :((

数値データでいくつかの行列の類似性?相関性?を比較するようなことをしたいのですが。

このように

matrix1: matrix2:

| 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 |

与えられた行列に最小限の差異がある場合、プログラム的にどのように分析すればよいのでしょうか?


if if and if again.私ならa1a1から始めます