コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
あまさとしおん ◆mzDKTVUAtwqE
2021/11/26 16:32
プログラムの文字数を半分ぐらいに圧縮することに成功(バイト数はほぼ減らない)

※下の割合は関係無いです

コメント

アバター
うんざり 2021/11/26 19:13 ◆VZlRV0xeWZeS
コードを見せてくれたらレビューできるんだけど、それがないとなんとも…
アバター
亜種の人 2021/11/26 22:07 ◆OoGIuUBTo25/
(レビューしろとは言っていない)
アバター
あまさとしおん 2021/11/26 23:14 ◆mzDKTVUAtwqE
「プログラム」の「文字数」を半分というちょっと癖にある圧縮ですけど、あとで公開する予定です。

なぜバイト数が減らないのか、それは半角2文字を全角1文字に詰め込んでるのでUTF-8表現で1文字当たりのバイト数が増えるから…
アバター
ねんねこ5787 2021/11/28 12:21 ◆kmnGZ2G5kYVa
すごい
アバター
あまさとしおん 2021/11/28 14:48 ◆mzDKTVUAtwqE
だいたいの仕組み
・UTF-8に似た発想(半角の英数字を1バイトにする代わりに日本語の文字が大きくなる)を自前で実装
・命令名の辞書をあらかじめ用意して短い符号に置き換えで圧縮強化

日本語の文章だと全然圧縮できないのはそういうことなのです
アバター
あまさとしおん 2021/11/28 14:52 ◆mzDKTVUAtwqE
命令の辞書は物により2バイトから3バイトに圧縮です
たとえばプログラムを書いたらよほどのことがない限り出てくる「THEN」は「&#」という符号に置き換えるので半分になります。
それ以外の命令も40個が対象で&で始まる短い符号に化けます
アバター
あまさとしおん 2021/11/28 14:56 ◆mzDKTVUAtwqE
これが中間データです。
命令が短くなって日本語が長くなってるので打ち消されてほとんど変わっていませんが、ここから半分になるので結果、だいぶ小さくなります。
アバター
あまさとしおん 2021/11/28 15:48 ◆mzDKTVUAtwqE
3号まとめwikiのSHSENDERに反映しました。
アバター
あまさとしおん 2021/11/29 12:49 ◆mzDKTVUAtwqE
エンコードを見直し、件の例で36495文字まで削減できるように改良しました

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -