✨ คำตอบที่ดีที่สุด ✨
1、2行目の出し方は理解されているようなので、なんとなく先頭のアルファベットとその個数で表せば良いと言うことは分かっている感じですかね。
2進数だと分かりづらいのでまずは10進数で説明します。
3行目はBが2個、Aが6個なのでB2A6のように表せば良いのですが、アルファベットはAとBの2種類だけなので、最初にBが続いていたらその次はAが続いていくし、最初にAが続いていたらその次はBが続いていくことが確定しています。
そのため、B2A6と書かなくてもB26と書くだけでBが2個、Aが6個ということが分かります(最大で8個までなのでBが26個と誤認されることもないです)。こうすることで1ビット分だけデータを短縮できます。
あとはこれをAは0、Bは1にして、個数部分は3ビットの2進数に直せば良いのですが、個数が8の場合は2進数に直すと1000の4ビットになってしまうので個数は-1して全部3ビットで書けるようにします。(8の場合は-1した7を2進数に変えて111になる)
したがって、3行目はB26のBを1、2を001、6を101に変えて1001101と表されます。
あとは他の行でも同じことをやって、全部で何ビットあるかを数え、元の64ビットとの割合を求めればokです。
すみません、長くなってしまったので分かりづらいところがあれば聞いてください。
ありがとうございます!!!!!
やっと理解できました!