01文字列の使い方はこちら

WBOY
リリース: 2016-06-13 12:17:45
オリジナル
1042 人が閲覧しました

こんな感じで01文字列を使います

今日何か作っていたら、面白いところをいくつか発見したのでメモしておきます。いくつかの小さな質問から始めましょう

年齢層をどのように記録しますか? 「50 ~ 70 歳」などと表現できますか?

非常に簡単だと思われるかもしれません。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、2、3、...、199、200 からいくつかの数字をランダムに選択します。どのように表現しますか?

もちろん、これを行うには、文字列表現を使用したり、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>
ログイン後にコピー
この時点で、1926、12、5698 が選択されていることを表現したい場合は、次の 01 文字列を使用できます:

1010000010

おそらくまた、これにはトラフィックを節約する効果があることも発見しました。2 つの当事者が対話する場合、ネットワーク上で送信する場合、実際のデータを送信する必要はなく、対応する 01 文字列のみを送信する必要があります。

もちろん、これにはさまざまな意味があります。たとえば、1 日を 5 分間のセグメントに分割し、合計 288 のセグメントからいくつかの 5 分間のセグメントを選択しました。これを表現するには、自分の長さの 01 文字列を 288 個用意するのが良いでしょうか (笑)。

場合によっては、この 01 文字列表現方法が非常に望ましい場合があり、トラフィックを節約できる場合もあります。

この記事の著作権は作者に帰属します (

[email protected])。記事を転載した後は、著者へのリンクと原文が記事ページに目立つように表示される必要があります。

1F
NewSilen
2進数に変換し、10進数に変換して送信
Re:
Running Man
@NewSilen、ネットワーク経由で通信する場合は、バイナリとしてパッケージ化する必要があります
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!