ハフマン符号という圧縮形式を真似ながら作った圧縮機能です。 息抜きの実験程度に作ったプログラムなので 圧縮率はそこまで高くなく実用性はあるとは言えませんが ランレングス法では少しも圧縮できなさそうなものも 圧縮できるので冗長性はあるけど同じ文字が並んでいない物への 圧縮に効果的です。 ある程度長い冗長性のある文章でないと逆に文字数が 増えてしまうので使用には注意が必要です。 また、どんな文字にも対応できます。(特殊文字などは除く) 大文字小文字も判定します。 返り値は全角です。(Unicode 4E00 ~ 51E6の999漢字と点記号)
All made by @MMGISS (@MMGISS_sub) サンプルの文字列は https://en.wikipedia.org/wiki/Huffman_coding ここから引用しました Scratchの変数の文字数制限(10240文字)により長すぎる文字列はうまく複合化されないことが分かっています。 理論上は長さに関係なく動作可能なので文字数制限が10240文字以上のScratch3.0に期待しましょう。(遠い目)