こんな感じで01文字列を使います
今日何か作っていたら、面白いところをいくつか発見したのでメモしておきます。いくつかの小さな質問から始めましょう
非常に簡単だと思われるかもしれません。2 つのフィールドを使用します。1 つは start=>Start age、もう 1 つは end=>End age、または 1 つのフィールドで start|end の形式を使用し、それを区切ります。間に数字以外を入れるか、start|start-end を使用します。笑、とにかく方法はたくさんありますが、この時点でアップグレードを要求する場合は、10 ~ 20、25、などの年齢を表現するように求められます。 29~40、どう表現しますか?もちろん、10-20|25|29-40 などの文字列を使用して表現することもでき、独自にルールを設定して表現することもできます。しかし、この表現方法を最適化できるでしょうか? 答えは「はい」です。
01 文字列を使用して、非繰り返しの年齢間隔を表すことができます。デフォルトは 100 個の 0 で、1 の場合はその年齢が存在することを意味します。それがゼロの場合、そのような年齢は存在しないことを意味します。説明を簡単にするために、ここでは 1 個のゼロを使用して 1 ~ 10 歳を示します。
0111111000 => は 2 ~ 7 歳を意味します
0110111010 => は 2~ を意味します3、5~7、9 歳
はは、表現するのは非常に便利ですが、もちろん、これには欠点もあります。しかし、それを使用するのは確かに不便であり、計算する必要があります。
もちろん、これを行うには、文字列表現を使用したり、1|5|100|199 のように各数値を数字以外で除算したりするなど、さまざまな方法があります。言いたいことは、上記の 1 ~ 200 と同じように、01 の文字列で表されます。その一部を選択する問題では、各位置が 0 または 1 の 200 個の位置の文字列を使用できます。この場合、この情報は 01 の文字列として表されます。 0~10に基づいて例を示します。
0111111000 =>は2、3、4、5、6、7
0110111010 =>は2、3、5を意味します。 , 6, 7, 9
もちろん、表現したいデータが連続ではないという人もいるかもしれません。たとえば、
1926, 19658, 12, 5638, 8975, 965, 369, 5126, 5698, 14556
上記の数値には非常に大きいものもあれば、非常に小さいものもあり、パターンが存在しないことを示したいと考えています。合計数が 10 を超えない場合、それらは使用されません。もちろん、いくつかの位置 (ここでは 19658 個の 0) は使用できません。マッピング関係は次のとおりです。 >
<span style="color: #800080;">1</span> => <span style="color: #800080;">1926</span><span style="color: #000000;">,</span><span style="color: #800080;">2</span> => <span style="color: #800080;">19658</span><span style="color: #000000;">,</span><span style="color: #800080;">3</span> => <span style="color: #800080;">12</span><span style="color: #000000;">,</span><span style="color: #800080;">4</span> => <span style="color: #800080;">5638</span><span style="color: #000000;">,</span><span style="color: #800080;">5</span> => <span style="color: #800080;">8975</span><span style="color: #000000;">,</span><span style="color: #800080;">6</span> => <span style="color: #800080;">965</span><span style="color: #000000;">,</span><span style="color: #800080;">7</span> => <span style="color: #800080;">369</span><span style="color: #000000;">,</span><span style="color: #800080;">8</span> => <span style="color: #800080;">5126</span><span style="color: #000000;">,</span><span style="color: #800080;">9</span> => <span style="color: #800080;">5698</span><span style="color: #000000;">,</span><span style="color: #800080;">10</span> => <span style="color: #800080;">14556</span>
1010000010
おそらくまた、これにはトラフィックを節約する効果があることも発見しました。2 つの当事者が対話する場合、ネットワーク上で送信する場合、実際のデータを送信する必要はなく、対応する 01 文字列のみを送信する必要があります。
もちろん、これにはさまざまな意味があります。たとえば、1 日を 5 分間のセグメントに分割し、合計 288 のセグメントからいくつかの 5 分間のセグメントを選択しました。これを表現するには、自分の長さの 01 文字列を 288 個用意するのが良いでしょうか (笑)。
場合によっては、この 01 文字列表現方法が非常に望ましい場合があり、トラフィックを節約できる場合もあります。
この記事の著作権は作者に帰属します (
[email protected])。記事を転載した後は、著者へのリンクと原文が記事ページに目立つように表示される必要があります。
1F