細
憎むべきは唐澤貴洋ただ一人のみ
>Kirari1192 |
>Kirari1192 細 (憎むべきは唐澤貴洋ただ一人のみ) |
||
| (同じ利用者による、間の11版が非表示) | |||
| 9行目: | 9行目: | ||
|才能=無能 | |才能=無能 | ||
|好きなもの=[[神聖六文字]] | |好きなもの=[[神聖六文字]] | ||
|嫌いなもの=[[唐澤貴洋]] | |嫌いなもの=[[唐澤貴洋]] | ||
|関係者=<div> | |関係者=<div> | ||
*[[唐澤貴洋]] - 我らが尊師 | *[[唐澤貴洋]] - 我らが尊師 | ||
| 53行目: | 53行目: | ||
送り状の作成はクロネコメンバーズ辺りでやると楽。他のサービスだと着払い伝票が出ないが、クロネコだけは着払いが出せる。手書きはやめたほうが良い。一番上が送り主控えのため指紋は問題ないが筆跡が残る上に何より面倒くさい。 | 送り状の作成はクロネコメンバーズ辺りでやると楽。他のサービスだと着払い伝票が出ないが、クロネコだけは着払いが出せる。手書きはやめたほうが良い。一番上が送り主控えのため指紋は問題ないが筆跡が残る上に何より面倒くさい。 | ||
追記: 自動化bot作りました とりあえず取り急ぎ | |||
* Discord版 https://discord.gg/TTu74TsuUB | |||
* Telegram版 https://t.me/DoxxinShowBot | |||
== 逆引きをカスタマイズする方法 == | == 逆引きをカスタマイズする方法 == | ||
| 67行目: | 71行目: | ||
== 2022/9/18に報告したちばけんまについて == | == 2022/9/18に報告したちばけんまについて == | ||
{{main|長谷川幸恵#2022年9月18日}} | {{main|長谷川幸恵#2022年9月18日}} | ||
9/18に報告したちばけんまについてカラケーでは書ききれなかったものの身内には開示した内容をまとめます。更なる詳細は特定対策のため追って開示します。最上級教徒様の二の舞はよろしくない | <del>9/18に報告したちばけんまについてカラケーでは書ききれなかったものの身内には開示した内容をまとめます。更なる詳細は特定対策のため追って開示します。最上級教徒様の二の舞はよろしくない</del>開示内容は以下の通り | ||
* 当初の目的はチンターホンをピンポンダッシュすること | |||
* 朝の8時頃に現地入りした | |||
** 交通手段については非開示。ただ少し非常識寄りの方法かも | |||
** 申し訳ないが具体的な実行日についても非開示 | |||
* わざと追い付かせた時すれ違いざまに「何逃げてんの」だか「何で逃げるんだよ」だとか言われた気がする | * わざと追い付かせた時すれ違いざまに「何逃げてんの」だか「何で逃げるんだよ」だとか言われた気がする | ||
** マンコーが本当は何を言ったのかは不詳。ちばけんまして聞いてみてくれ | ** マンコーが本当は何を言ったのかは不詳。ちばけんまして聞いてみてくれ | ||
** ガソリンスタンドまで逃亡したら帰っていった。自転車乗ってたくせにやる気あったの? | |||
* 多分越後屋のエプロン着て接客している男がマンコー | * 多分越後屋のエプロン着て接客している男がマンコー | ||
** ちばけんまの数ヶ月前に開示丼を食しました。おいしかったです | ** ちばけんまの数ヶ月前に開示丼を食しました。おいしかったです | ||
* 本当は8/10に行く予定だった | * 本当は8/10に行く予定だった | ||
** 交通費を工面できなかったから<!-- | ** 交通費を工面できなかったから<!--代わりに野獣邸けんまをしているが、出回っている映像には全く写ってないからセーフ--> | ||
* 実は顔を隠す用にお面を持っていった | * 実は顔を隠す用にお面を持っていった | ||
** 使用機会、無し!w | ** 使用機会、無し!w | ||
** ガイ・フォークス・マスクというアノニマスで有名なアレ | ** ガイ・フォークス・マスクというアノニマスで有名なアレ | ||
* 国セコとの遭遇は無かった | |||
** 多分長谷川家は呼ばなかったのだろう | |||
== メモ欄 == | == メモ欄 == | ||
archiveiya74codqgiixo33q62qlrqtkgmcitqx5u2oeqnmn5bpcbiyd.onion | archiveiya74codqgiixo33q62qlrqtkgmcitqx5u2oeqnmn5bpcbiyd.onion<br> | ||
twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion | twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion<br> | ||
[[利用者:Kirari1192/Koushinism_for_Beginners]] | |||
== 恒心教リッピング路線 プログラミング講座 == | == 恒心教リッピング路線 プログラミング講座 == | ||
| 91行目: | 103行目: | ||
難しくはならないように頑張りますを<br> | 難しくはならないように頑張りますを<br> | ||
OSS担当が扱える言語の関係上言語はPythonとKotlinになりますを | OSS担当が扱える言語の関係上言語はPythonとKotlinになりますを | ||
コンソール上で同じことをするにはKotlinであれば<code>kotlinc-jvm</code>コマンド、Pythonであれば<code>python3</code>か<code>python</code>コマンドでREPLが立ち上がりますを<br> | |||
下にあるコードの内<code>>>> </code>で始まるコードを<code>>>> </code>を除いてコピペすれば同じコードを動かせますを<br> | |||
とりあえず取り急ぎ | |||
バリュケーを含めここ以外では書いていないので注意して欲しいナリ<br> | バリュケーを含めここ以外では書いていないので注意して欲しいナリ<br> | ||
| 296行目: | 312行目: | ||
<re.Match object; span=(0, 4), match='唐澤死洋'> | <re.Match object; span=(0, 4), match='唐澤死洋'> | ||
量化指定子を使いつつ最短でマッチさせたい場合は、量化指定子に続けて<code> | 量化指定子を使いつつ最短でマッチさせたい場合は、量化指定子に続けて<code>?</code>を付けるナリよ (唐澤貴洋のみにマッチすることに注目) | ||
(Python) | (Python) | ||
>>> re.match(r'唐澤.*?洋', '唐澤貴洋ナイフで滅多刺しにして殺す。洋、お前もだ') | >>> re.match(r'唐澤.*?洋', '唐澤貴洋ナイフで滅多刺しにして殺す。洋、お前もだ') | ||
<re.Match object; span=(0, 4), match='唐澤貴洋'> | <re.Match object; span=(0, 4), match='唐澤貴洋'> | ||
当然全ての量化指定子はリテラル(文字)にも使えますを | |||
(Python) | |||
>>> re.match(r'唐澤貴?洋', '唐澤貴洋') | |||
<re.Match object; span=(0, 4), match='唐澤貴洋'> | |||
>>> re.match(r'唐澤貴?洋', '唐澤洋') | |||
<re.Match object; span=(0, 3), match='唐澤洋'> | |||
>>> re.match(r'唐澤貴*洋', '唐澤貴貴貴洋') | |||
<re.Match object; span=(0, 6), match='唐澤貴貴貴洋'> | |||
==== まとめ ==== | ==== まとめ ==== | ||
| 307行目: | 334行目: | ||
正規表現はもっと奥深い世界なので興味を持った芋はもっと調べてみることを切に望む<ref>取材注: なお当の部員はHTMLの正規表現とHTMLの2つとにらめっこして頭の中でマッチとか修正したり、HTMLやその他コードを見て正しく切り出せるであろう正規表現で一発で書けるらしい。バケモンか?</ref>。 | 正規表現はもっと奥深い世界なので興味を持った芋はもっと調べてみることを切に望む<ref>取材注: なお当の部員はHTMLの正規表現とHTMLの2つとにらめっこして頭の中でマッチとか修正したり、HTMLやその他コードを見て正しく切り出せるであろう正規表現で一発で書けるらしい。バケモンか?</ref>。 | ||
=== 2022/11/4 文字列? バイト配列? エンコーディング? === | |||
文字化けはインターネットで日本語に限らずマルチバイト文字が関係する環境であれば誰でも見たことがあると思うナリ<br> | |||
"蜚先セ、雋エ豢区ョコ縺�" 文字化けだからセーフ | |||
文字化けはなぜ起こるナリか? 理由は簡単で出力したときのエンコーディングと読み込むときのエンコーディングが違うからナリ<br> | |||
今回は文字列とバイト配列の違い、そしてエンコーディングがどう関わってくるかについて考えるナリ<br> | |||
今回はPythonだけとさせて頂くナリ とりあえず取り急ぎ | |||
==== 文字列 ==== | |||
[[唐澤貴洋|????]]「まずは『文字列』について考えるナリ。これは何ナリか」 | |||
文字列は一繋がりの文字の並びを指すナリ。例えば"唐澤貴洋Wiki"は文字列ですを<br> | |||
別の観点から見れば文字配列のようにも考えることができますを<ref>Cでは正にそのようになる。また他の言語でも内部的には文字型の配列を持っていることが珍しくなく、Java 9以前のJavaはその一例と言える</ref> | |||
"文字"を数値と見ると、よくあるものは16ビット数値<ref>Goのように文字型が32ビットになる言語も存在する。</ref>として見なすナリ<br> | |||
これは文字コード<ref>大体Unicodeである</ref>を直接記憶するためにその程度のビット数を確保する必要があるからですを | |||
(Python) | |||
>>> ord('唐') | |||
21776 | |||
>>> ord('澤') | |||
28580 | |||
>>> ord('貴') | |||
36020 | |||
>>> ord('洋') | |||
27915 | |||
>>> ord('殺') | |||
27578 | |||
>>> ord('す') | |||
12377 | |||
==== バイト配列 ==== | |||
バイト配列は一繋がりのバイトの並びを指すナリ バイト(byte)とは通常は8ビット数値<ref>通常は、と書いたのは7ビットや9ビットの環境もあるという意味だが、これらは主にメインフレームなどで使われているものであるため考えない</ref>を指し、符号付き(signed)では-127~127、符号なし(unsigned)では0~255までの範囲を表せる数値型ナリ | |||
Pythonでは文字列(str)とバイト配列(bytes/bytearray)が非常に似た型になっていて紛らわしいナリが本来は全くの別物ナリ | |||
この表現はファイルに書き込んだり、外部と通信する時に使いますを | |||
(Python) | |||
>>> b'I will kill Takahiro Karasawa' | |||
b'I will kill Takahiro Karasawa' | |||
>>> b'I will kill Takahiro Karasawa'.hex() | |||
'492077696c6c206b696c6c2054616b616869726f204b61726173617761' | |||
1バイトを16進数にすると丁度2文字になるので色々と都合の良い表現と言えるのが特徴ナリね | |||
==== エンコーディング ==== | |||
では文字列をファイルに書き出したい時はどうするかについて考えるナリ<br> | |||
文字そのものをファイルに書き出すとは言ってもバイト配列に変換しなければならないナリ | |||
その文字列をバイト配列に変換する方式のことをエンコーディング(encoding)と言いますを<br> | |||
このエンコーディングが出力時と読み込み時で異なると文字化けするナリよ | |||
(Python) | |||
>>> '唐澤貴洋殺す'.encode('euc-jp').decode('sjis') | |||
'ナ籬キオョヘホサヲ、ケ' | |||
一例として[[唐澤貴洋殺す]]を色々なエンコーディングで表現したらこのようになるナリ (bytesのままでは見づらいため16進数に変換) | |||
(Python) | |||
>>> for enc in ('utf-8', 'utf-16', 'sjis', 'euc-jp'): | |||
... print(f'{enc}: {"唐澤貴洋殺す".encode(enc).hex()}') | |||
... | |||
utf-8: e59490e6bea4e8b2b4e6b48be6aebae38199 | |||
utf-16: fffe1055a46fb48c0b6dba6b5930 | |||
sjis: 9382e0568b4d976d8e4582b7 | |||
euc-jp: c5e2dfb7b5aecdcebba6a4b9 | |||
日本語のウェブサイトでも今はUTF-8が主流ナリが過去にはShift-JISやEUC-JPが主流だった時代もあり、エンコーディングというのは現代では非常に重要な概念になっているのは間違いないですを | |||
=== 2022/11/6 浮動小数点数と浮動小数点演算 === | |||
コンピュータでの小数の取り扱いはそう簡単な話ではないナリ<br> | |||
例えば0.1という数を考えるナリ<br> | |||
5倍すれば0.1×5で0.5<ref>念の為に書いておきますが、何のとんちや引っ掛けもありません。単純な算数の話です</ref>、それは分かるよね? | |||
でもコンピュータの世界ではそうは行かないナリ | |||
(Kotlin) | |||
>>> 0.1f.toDouble() | |||
res12: kotlin.Double = 0.10000000149011612 | |||
>>> 0.1f.toDouble()*5 | |||
res13: kotlin.Double = 0.50000000745058060 | |||
コンピュータ上での0.1の扱いが強調されるように少し加工しているナリが<ref>KotlinなのかJavaのせいか不明だが、そのままやるとちゃんと0.5が出てくるので32ビット浮動小数点数(単精度)を64ビット(倍精度)に変換した</ref>、浮動小数点の世界では0.1を含む様々な小数点以下の値を厳密に保管できないですを | |||
これは浮動小数点の内部的な表現と2進数と10進数の変換に起因しているナリ<br> | |||
コンピュータに載っているCPUは{{wpl|ja:IEEE 754|IEEE 754}}形式に従って小数を表現していますを<br> | |||
細かいことに関してはMuyopediaのリンク先を見て欲しいナリが、大まかには符号部、指数部、仮数部の3つで成り立っていますを<br> | |||
0.1は2進数表現をすると循環節<ref>ある周期で永遠に繰り返すこと</ref>が発生するナリ そのため一定の桁数で表せないことから上で示したように誤差が発生しますを | |||
これが倍精度(64ビット)IEEE 754表現での0.1ですを | |||
(Kotlin) | |||
>>> 0.1.toRawBits().toString(2).padStart(64, '0') | |||
res22: kotlin.String = 0011111110111001100110011001100110011001100110011001100110011010 | |||
この数の仮数部は<code>1001100110011001100110011001100110011001100110011010</code>ナリ<br> | |||
ほぼ最後まで1001の繰り返しになっていることが分かると思うナリ これはいけない | |||
同様の理由で、大きな整数も浮動小数点数で表現できないですを<br> | |||
1234567890430440987654321という数を例に取るナリ<br> | |||
上が倍精度浮動小数点数、下が本来の2進数表現とそのビット数ナリ | |||
(Kotlin) | |||
>>> "1234567890430440987654321".toDouble().toRawBits().toString(2).padStart(64, '0') | |||
res45: kotlin.String = 0100010011110000010101101110000011110011011110111101011101111001 | |||
>>> "1234567890430440987654321".toBigInteger().toString(2) | |||
res47: kotlin.String = 100000101011011100000111100110111101111010111011110010001111111110111100010110001 | |||
>>> "1234567890430440987654321".toBigInteger().toString(2).length | |||
res48: kotlin.Int = 81 | |||
倍精度浮動小数点数の仮数部は52ビットなので、その仮数ビットに収まりきらない程の桁を入れようとしていたことが分かるナリ<br> | |||
これを<strong>桁落ち</strong>と言いますを 桁落ちは誤差の原因になるナリ | |||
同じ現象を引き起こす例として、大きな数と非常に小さい小数を足す場合があるナリ | |||
(Kotlin) | |||
>>> 43044.toDouble()+0.000000000005 | |||
res4: kotlin.Double = 43044.00000000001 | |||
浮動小数点数は整数部と小数部を自由自在に融通できて便利という面がある一方、小数点では循環節が発生して表現しきれないことがあるなど一長一短ナリ<br> | |||
通常の使い方では倍精度浮動小数点数で十分ナリが、言語によっては任意精度演算も可能なので必要に応じて使い分けることを切に望む。 | |||
==== プログラミング講座について ==== | |||
恒心教リッピング路線の原状復帰の目途が立ったので今回で終了ナリ 皆様との出会いに感謝<br> | |||
質問はいつでも受付けているナリ ではさよなら法政二中 またどこかでお会いしましょう | |||
== 脚注 == | == 脚注 == | ||
<references /> | <references /> | ||