可能な限り最小限のデータで、以下をバイナリ形式に変換する (後で回収する) 必要があります。
my_arr = [
[128,32 ,22,23],
[104,53 ,21,25],
[150,55 ,79,23],
[104,101,23,8 ],
[57 ,117,13,21],
[37 ,135,21,20],
[81 ,132,23,6 ],
[81 ,138,7 ,8 ],
[97 ,138,7 ,8 ]...
数が 399 を超えない
各桁に 0 を使用し (行に 8 つの 0 = 8)、区切り文字として 1 を使用すると、最初の行は次のようになります: 010010000000011000100110010011001000
各数値を 3 桁にパディングし、それぞれを実際のバイナリに変換すると、最初の行は次のようになります。
最初の文字が 4 以上になることはないので、0 を 00、1 を 01、2 を 10、3 を 11 として扱うことで 2 桁を節約できます。最初のオプションの約 90% (平均) ですが、もっと短い方法はありますか?
編集:はい、1と0の文字列として...そして元の整数よりも短くする必要はありません...2つの記号のみを使用してそれを書く最短の方法です