はてなキーワード: 乱数とは
はてぶの上位にちょいちょい載ってるTBS系のニュースサイト、newsdig.tbs.co.jpについて。
https://b.hatena.ne.jp/site/newsdig.tbs.co.jp/
何がヤバいかって、くっそ巨大なCookie(LocalStorageとかも含むのか知らんけど)をしこたま保存してんのよ。
気付いた時点では640MBも占有してた。別に巡回チェックしてるわけでもなく、話題に挙がってたら見てみることもある程度のアクセス頻度なのだが。
Chromeユーザーはアドレスバーに↓コピペして確認してみてくれ。
chrome://settings/content/all?searchSubpage=tbs.co.jp&search=cookie
試しにCookie消去してから、ただ開いただけでサイト上で何の遷移もしてないのに279MBも保存された。
次点ではpresident.jpが553MB消費してた。(こっちも話題に挙がってたら見てみることもある程度。)
(その次にはGoogleが数百MBオーダーで消費してたけど、これはGoogleドライブのオフラインキャッシュとか考えれば妥当。他に数百MBオーダーで消費してるサイトは無かった。)
多くのサイトは数バイト~KBオーダーなのに、こいつら何保存してんのか不気味すぎる。
(追記)
各自の環境の消費量を教えてくれた方々や有意義なコメントを下さった方々ありがとうございます。
始めにお断りしておくべきだったかもしれませんが、自分はソフトウェア系ではありますが、Webエンジニアではありません。認識が浅かったり、古かったり、そもそも間違ってる可能性もあります。
CookieじゃなくてCacheStorageやんけと突っ込みもいただいていますが、「LocalStorageとかも含むのか知らんけど」と書いておいた意図は(どのような技術要素かはどうでもよくて)ユーザー端末に保存されるデータボリュームについての話を意図しています。ChromeのCookie絡みの設定画面での表示なのでこのような書き方をしましたが、解り難かったのならごめんなさいね。冗長ながらも認識齟齬を招かないように平易な表現で書くと、「ユーザの明示的な承諾なくユーザー端末に保存されるデータがデカイんだが」って話です。
で、各自の環境で「ユーザの明示的な承諾なくユーザー端末に保存されるデータ」が数GBオーダーにも及ぶという事例が少なからず報告されて、自分の環境だけではない事象だということが判りました。
さらにtbsとpresident以外にもいくつかのサイトが同様に肥大化していることも知れました。
結果的にはid:hinaloeさんの解説が解りやすかったです。ありがとうございます。
https://blog.hinaloe.net/2023/04/27/chrome-too-large-cache-storage/
CacheStorageがChromeの表示と、実際のディスク消費量と一致していないことが原因であると理解しました。
追試してみたところ私の環境ではChromeの開発者ツールでの表示が74MBで実際のWindowsのファイルシステム上は33.9MB消費されました。
実際のストレージの消費は表示値の半分程度ということになり、id:hinaloeさんの1.4GBに対して5MBのように実際の約0.3%という結果とは大きく乖離がありますので、各環境で大きく違いそうな気がします。
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Service Worker\CacheStorage
※配下のどのディレクトリが対象サイトのものなのか一意に特定する情報が無さそうなので、Chrome開発者ツールのApplicationタブの左上の方にあるService Workersを選択すると、右側にReceived YYYY/M/D HH:MM:SSみたいな表記が有るので当該時刻に変更されたタイムスタンプを持つディレクトリを特定するような感じになるかと思います。
ついでに開発者ツールを触っていて気付いたベースで書いておくと、
といった感じで、ユーザが見たものをキャッシュしているのではなくて、先読みしてるような挙動に思えます。
ロード時間短縮でUX改善を狙ったものかもしれませんが、個人的にはそれを1か月も保持し続けるのは過剰な感じがしますが世の中的にはどうなんでしょうね?
(追記2)
hinaloe氏の投稿で紹介されているStackOverflowの投稿やそのリンク先のChromiumのバグレポートのやり取りまで目を通してみると、特に理由の説明なく平均7MBがパディングされると書かれた投稿があります。
https://stackoverflow.com/questions/39109789/what-limitations-apply-to-opaque-responses
https://bugs.chromium.org/p/chromium/issues/detail?id=796060
該当するソースコードは↓のようです。
この中で、ComputeRandomResponsePadding()という関数を呼び出しておりその実体は↓のようです。
この関数は符号無し64bit整数の乱数(つまり、0~18446744073709551615のいずれか)を14431 * 1024 = 14777344で割った剰余(つまり、0~14777343≒約14MiB)を返却します。
これがパディング値として採用されることになりますが、乱数が正規分布している前提で、平均すると(最大値14MiBの半分で)約7MBになるよねってことだと思われます。
故にChromeの設定画面から確認できるCookie等(LocalStorageとかCacheStorageとか諸々含む)のサイズは、概算してCacheStorageに存在するファイル数×平均7MBが過大計上されていることになりそうです。
これでChromeの設定画面から確認できるサイズと、実際のファイルシステム上で消費されているサイズの違いは合理的に説明できますが、TBS等の特定のサイトだけデカくみえる理由の説明にはならないのです。
なんなんすかね?
俺は国語と精神と頭が弱くてここの住民にうまく伝わるかわからないけど
題名の通り
「宝くじとか空くじ 億千万円とか当たるわけないだろ ばっっっっっっっかじゃねーの 赤ちゃんバブー」
とか 言ってた俺に一等前後賞が当たった
本当に嬉しい けど同時に震えて怖くなった
年末がパァになった
家と銀行とをいったりきたりした 道中で怖さと疲れでめげそうになったのをなんとかがまんした
当たって浮かんだのは「これ全てを俺1人で抱えるのか」だった
どこかの増田が10年前とか2年前とかに俺と同じくらいかそれ以上の金額を当てたことを思い出した
俺も当てた 当てたくて当てた そうだから
当たる前はつかいみちはバカ面に鼻垂らしてうへうへ無限に考えてたのに今では「どうしよう」の言葉が脳みそに泳いでて
何もできなくなった
まえの俺の知る高額増田のブコメとかに「1億ははしたがね あぶくぜに うたかたのゆめ 現実見ろ」って散々散々言われてたのを見たし
俺も「投資しろ」とか当たってもないのにウエメセで言ってたから
俺は恥ずかしくて仕事辞められなかった
「夢じゃないんだ 本当に抱えるんだ」と思った
膝がガコガコして女の子みたいにぺちゃーって床に座った
俺はもう文章で察せるだろうが
投資とかカネ増やしとか そんなの俺がするもんじゃないって思ってた
その日死ななければオッケーで生きてた 今は死にそう
ブコメは大金は刺して欲しいやつがうじゃうじゃいるって言ってたから俺も刺されようと思った
そしたら父ちゃんに低い声でさとされて「身内にでも教えるものじゃない」って言った
俺は自慢が借金はないこと
でも高卒でおまけにバカだからここの住民みたいな 頭いい勉強は知らない
本当にバカなの
お金がもらえるらしくてやりたかったけど ボタンが多くて失敗した
俺はバカだから宝くじの300円とか3000円とか当たったら喜んだ
億とか数えれないし 競馬とかパチンコみたいに難しいのを考えなくていいからよかった
誰か助けてくれ まじ怖い
いろんなコメ見たけどみんな俺を心配してくれてて心があったかくなった ありがとな
父ちゃんを褒めるコメがいっぱいあって俺が嬉しくなった 俺の父ちゃんはすごいんだぞ
とりあえず俺は引っ越すことになった 父ちゃんも引っ越すかもしれないって言ってた
最初の使い道はこれかもしれない 父ちゃんは「俺の引っ越し資金は俺が出すからお前の金は出すな」って言った
そんで俺も父ちゃんも電話の番号と会社を変えた そうした方がいいって父ちゃんが言ってたから
契約が俺がどんくさくて父ちゃん同伴するんだけど 頼りになる 頼りにしちゃいけないんだけど
何でもかんでも父ちゃんに押し付けてていい歳して情けないけど 俺には父ちゃんしかいないから
いつか恩返し山ほどしたいな
あと住民 ありがとな 大好きだ
NPCとの交換によって入手できるポケモンの仕様は作品によってまちまちだが、多くの場合は性格値(PID)や個体値が固定化されていて、乱数調整することができない。
しかし一部のポケモンについては、固定乱数と同様の乱数値によって生成されるため、乱数調整することが出来る。
特に、XDでギンザルと交換できるヨーギラスなどは、色違いにすることも可能であることが知られている。
なお、この際はギンザルの表ID(TID)と、プレイヤー自身の裏ID(SID)の組み合わせで個体検索をする必要があった。
先に結論から書いておくと、ルリ/テツからもらえるポケモンは乱数調整できるが、色違いにすることはできない。ここから以下はその検証の過程になる。
他のNPCとのイベントが発生している場合などに連絡できないことがある。日付が変わった直後にライモンシティ内でライブキャスターを起動するのが安全か。
第5世代において、不定消費がある場合は、お馴染みのおしゃべりペラップによる初期seed特定を行う必要がある。音の高低を判断するため、録音も必須になる。
上記のように消費速度が非常に速いため、出来るだけ起動後すぐにメニューを開き、任意消費終了後には素早く話しかけられるようにしたい。
上記のギンザルのケースがあるので、IDの組み合わせを含めた条件をいくつか変えながら乱数調整を行った。
調子が良いときはめちゃくちゃ調子が良くて何やっても上がれるのに対して
3巡目国士テンパイしても最後まで上がれず、上がり牌は相手側が暗刻、なんてのが「よくある」
普通に牌で打ってたらそうそう起きないようなことが平気で何回も起きる
客観的に見て絶対に牌操作してるし、やってる側もそれを分かって遊んでるんだがMJは牌操作を認めない
結果としてギャンブル性が非常に高くなっていて課金を促してる側面がある
例えば1000万回ほど適当なシードで牌山を生成し、天和になるようなシードを見つけたらそれをユーザに与えればいい
不確定要素とかユーザの動作で変わる、みたいなのもあるんだが、結局は局の最初に何かしらの形でシードをユーザが選べないと牌山なんてどうにでも操作できる
これで金を取って商売してるのはどうなんだ
これほんとにそれ
ランダマイザの A と B に入れてるのが
男 男
女 男
男 女
これになってるから2/3とかでるのあたりまえ
女 男
これは片方が男の場合 じゃねえんだよ
なんだよ
なんでこんなことがわかんねえかなあ
「片方が男のとき」
だから
B が男の場合 A を不確定要素にするなら
だから
A B
男 男
女 男
男 女
男 男
こうなるんだよ
けっきょく二分の一じゃねえか
A男 B男
A男 B女
A女 B男
A男 B男
A女 B女
が存在しないように設定されてるんだよ
この前提が覆るんだよ
それを含んでも
A女 B女
A女 B女
が追加されるわけだから結局3/6ってわけだ
そうでなきゃ片方が男って因子が反映できないだろ