はてなキーワード: 乱数とは
90++とかは凸してないと乱数で撃ち漏らすでしょ
ボブは量子力学についての知識は素人だった。ところが、ウィグナーの友人を応用すれば、量子乱数を使い、可能世界の重ね合わせを実現できるのではないかと思った。
可能世界とは、今までの知識・経験から考えても無矛盾な世界の集合で、これはいくつもバリエーションはありえる。
だが、どういう世界になるかはわからない。ボブは異世界アニメの影響を受けていて、本当に別の世界に行きたいと思っていた。
そして量子乱数を使ったそのプログラムを走らせた。...なにもおこらない。
もう一度走らせる...やはりなにも起こらない。
それを何度も繰り返していると、急にテレビが付き始めた。
テレビの画面の中に外国人が映っており、「もうわかった」と話し始めた。
「もうわかった」と男はもう一度言った。
「お前たちはもう自由だ、好きなところへいけ」
ボブはキターと思った。好きな異世界へ行けるというサインに違いない。
しかしボブの考えは甘すぎた。
その後にいくつかの異世界のバリエーションを体験したが、どれも地獄の所業であった。
そしてボブは元の世界に戻ってくると「異世界は駄目だ!危険なロジックで構築されている!今の世界が一番!神を信用しよう!」と言った。
11. 演習
https://www.python.jp/train/exercise/index.html
以下、気になったところ。
プロシージャ (procedure)とは、プログラミングにおいて複数の処理を一つにまとめたものをいう。
一連の処理を意味を持った一まとまりにすることで、再利用性が高まり、プログラム中に繰り返して現れる処理を1ヶ所で記述でき、プログラムの保守、管理を容易にする。
呼び出し関係は通常階層構造をなし、その最上位にある、プログラム全体のエントリーポイントを含むルーチンをメインルーチン、呼び出されるものをサブルーチンと言う。
乱数を生成する
Pythonでは、乱数を生成するときには random モジュールを インポート します。
インポートしたモジュールの関数は、モジュール名.関数名() の形式で呼び出します。
randrange() は、
random.randrange(開始値, 終了値)
cf. リファクタリング (プログラミング) - Wikipedia
リファクタリング (refactoring) とは、コンピュータプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。
また、いくつかのリファクタリング手法の総称としても使われる。
ただし、十分に確立された技術とはいえず、また「リファクタリング」という言葉に厳密な定義があるわけではない。
主なリファクタリング
Pythonの慣例で、定数値の変数名は小文字のboard_size ではなく、BOARD_SIZE のようにすべて大文字にします。
プログラム中にいきなり出てくる意味のわからない数字は、一般に マジックナンバー といいます。
基本的には、マジックナンバーは、値を直接書くのではなく、その値の意味がわかるように、常に 変数に代入してから利用するようにします。
マジックナンバーを変数に代入せず、あっちこっちで使ってしまうと、あとでその値の意味がわからなくなってしまったり、値を変更するときに修正漏れが発生したりします。
cf. マジックナンバー (プログラム) - Wikipedia
プログラムにおけるマジックナンバー(英: magic number、魔法の数字)とは、何らかの識別子もしくは定数として用いられる、プログラムのソースコード中に書かれた具体的な数値である。
そのプログラムを書いた時点では製作者は数値の意図を把握しているが、他のプログラマーまたは製作者本人がマジックナンバーの意図を忘れたときに閲覧すると「この数字の意味はわからないが、とにかくプログラムは正しく動く。まるで魔法の数字だ」という皮肉を含む。
次のような理由で、マジックナンバーはプログラム中に含まれないことが好ましいとされる。
マジックナンバーを避けるため、マジックナンバーが書いてある箇所を定数や列挙型に置き換えるといった処置がとられる。
ハードコーディング(英語: hard coding)とは、本来プログラム中に記述すべきでないリソース(エラーメッセージなど)を、直接ソースコード中に埋め込むことである。
これらは本来、外部ソースから取得するか、実行時に生成するべきものであり、これをソフトコーディング(英語: soft coding)という。
今なら、高機能なIDEを使えば、力技でハードコーディングを書き換えることも可能?
元のソースコードでは、スイカとプレイヤーの位置を、x座標とy座標それぞれ別々の変数として保持しています。
しかし、スイカやプレイヤーの座標は本来一つの情報ですので、x座標とy座標で2つの変数に分ける意味はありません。
こういった場合、
(x座標, y座標)
主となる関数(ここでは suika_wari() ) と、
主となる関数が利用する補助的な関数 (ここではgenerate_position()、calc_distance()、 move_position())
を組み合わせて全体を構成する手法は、プログラムの開発でもっとも基礎的で重要なテクニックです。
エントリーポイントとは、プログラムを実行するうえで、プログラムやサブルーチンの実行を開始する場所のこと。
プログラム全体のエントリーポイントとなる場所を含むルーチンがメインルーチンである。
例えば、C言語の標準では、mainという名前の関数(の先頭)がエントリーポイントであり、各関数のエントリーポイントは、それぞれの関数の先頭である。
以上で、Pythonの入門が終わった。
この教材のボリュームなら、数日で学習できる。土日とかに集中してやればサッと通過できるはず?
Pythonの動作は、コード片をColabにコピペして実行すれば確認できるので楽だった。(あまり手を動かさなくても学べる)
https://anond.hatelabo.jp/20230611160913
のつづき
解答「ガチャをはじめ、ゲーム性に不可欠な乱数を扱うのはブロックチェーンではそもそも困難です。乱数を得るのに、乱数オラクルと呼ばれる外部サービスに依存しなければならず、しかもそれが高価だからです。ゲームのような頻繁に乱数を要するようなユースケースには耐えられません。それを嫌って、乱数オラクルを自社運用したとすれば、ソシャゲのガチャと何も変わりません。むしろ金銭的利益と直結するBCGにおいては、運営側に乱数を操作するインセンティブが生まれるので、運営の不正が蔓延するでしょう。」
※別解「ゲームロジックのようなデータ量が多くて複雑な計算は、手数料が高すぎてスマートコントラクトでは実行できません。結局、重い処理は今まで通りブロックチェーンの外で行わなければいけないので、フェアなロジック実行、チート対策などが、ブロックチェーンだからできるということにはなりません。」
解答「ゲーム内資産を金融商品化するせいで、ゲームがギャンブルになってつまらなくなるのです。GameFiは本来のゲーム性を破壊する悪の根源です。出てってください。」
解答「全く関係ありません。VR界隈から嫌われているので、はやく片思いだと気づきましょう。」
解答「全く関係ありません。AI界隈から嫌われているので、はやく片思いだと気づきましょう。」
解答「Rollupによるスケールはシステミックリスクを増大させる恐れがあり、銀の弾丸とは呼べません。複雑なインセンティブ設計で維持されている流動性ブリッジで接続し合うRollupの網の目は、マネーレゴの一部品のハッキングやラグプル、ブラックスワンイベントをきっかけに、悪影響が波及して全体として崩壊しかねません。WEBがスケールしたのは、一部の障害が全体に無影響であるからです。トークンを触媒にして密結合するRollup網は、大きくなればなるほどシステミックリスクが高まり、むしろ脆くなっていくのは想像に難くありません。」
※別解「スケールすればするほど、Time-bandits攻撃と呼ばれる攻撃のリスクが高まるでしょう。子レイヤーで発生するMEVの合計が、親レイヤーのバリデータのペナルティを差し引いても十分に余るようになれば、親レイヤーの安定したコンセンサスを守るためのインセンティブ設計が成立しなくなります。」
解答「Web3といいながら政府発行の法定通貨に依存するのですか?恥を知りましょう。それはプロダクトキラーの間違いです。Web3がこのような新しい用語を頻繁に発明するのは、矛盾を巧妙に隠蔽するためです。ステーブルコインはそれに最も成功したバズワードの一つです。」
解答「善悪を恣意的に定義し、経済的インセンティブで善に誘導するのは新しい共産主義です。」
解答「ブロックチェーンはデータの保管には向いていません。ビザンチン耐性だけなら分散DBで事足ります。もし改竄耐性が欲しいのであれば証明書チェーンのような仕組みで事足ります。すでに一部の界隈ではブロックチェーンではなく、VDR(Verifiable Data Registry)という言葉が代わりに使われるようになっています。ブロックチェーンはわざわざ使わなくて良いのです。」
解答「ブロックチェーンが必要となるのは、悪玉ピアを含む不特定多数が参加するP2Pネットワーク上で、読み書きの権限を不特定多数に開放している台帳プロトコルの状態遷移のコンセンサスを取りたい場合のみです。ビジネスにおいてここまで過酷なことを要求される場面はほとんどありません。特に不特定多数を相手にするという性質がコンプライアンス遵守と相反するのでビジネスにならないことが殆どです。数年前からWhy Blockchain?という問いに挑んできた企業の多くがブロックチェーン事業に挫折したのはここに起因します。」
解答「インターネットは通信回線やパソコンの普及などインフラやハード面が未熟だったためその真価が発揮されるまで時間がかかりました。しかしWeb3で不便とされる側面は、物理的なものではなく原理的なものに起因します。ブロックチェーンのトリレンマから言えば、分散性を諦めない限りスループットは上がりませんし、手数料も安価にはなりません。悪名高いパスフレーズはなくせません。それらは性質として受け入れないとならないのです。また、詐欺が多いという非技術的な課題は規制でしか解決できませんが、Web3業界は規制を目の敵にしています。自ら課題解決を放棄しているのです。」
※別解「インターネットをバカにしてたのは外野だけじゃん。実際に触ってた人はみんな楽しんでたよ?Web3触ってる人で楽しんでいるのは稼いでる人だけじゃん。ゼロサムゲームおつ。チュッ、ネット老人でゴ・メ・ン♫」
解答「できません」
解答「日本だけでなく世界中のWeb3ヤーがドバイに集まっています。あなた方が、ドバイに追いやられているのです。」
解答「GAFAMに負けたことを悔しがるのは大切ですが、一発逆転を狙って一過性のバズワードに躍らされるのはやめましょう。まずは、日本がGAFAMに負けたのではなく、アメリカが世界で一人勝ちしていることに着目して戦術ではなく戦略を立ててください。」
※別解1「そのまえにマイナンバーをどうにかしてください」
※別解2「まずはこの一問一答に対する反論を考えてください。」
つづき
サイン盗みとサイン盗み対策は日々過剰に進歩し続けて、1970年ごろになると、ピッチャーとキャッチャーは乱数を送り合うところまでになってしまった。1球なげるたびに乱数を送って隠し持った乱数表と照合して球種を決めていた。乱数はすぐにバレてしまうから試合中なんども乱数表を切り替えるようにしてた。そんなことをするようになったから試合時間がどんどん長くなっていく。1980年頃になったら、21時半の時点でまだ5回とか、試合が完了したら23時だったとか、そういうのが日常茶飯時に。テレビ放送時間には収まらないし、試合を最後までみたら終電で帰れないし、試合中ひまを持て余した選手が攻撃時間中にからあげを食べるようになったり、川崎球場ではファンが流しそうめんをしたり、いろいろな弊害が発生し社会問題となってしまった。
それをうけてゼットが「乱数送受信機能付きグローブ」を開発したんだけど、そういう問題じゃないだろ。
そこで「乱数禁止」「サイン盗み禁止」が取り決められたんだよ。
それ以来、「乱数禁止」「サイン盗み禁止」は絶対のルールになったんだよ。
高校野球でハンケツ王子がやたらハンカチに触ってたけどプロだとあれも禁止。「乱数送ってるのでは」と異議が付きかねないから。
高校中退した
先週高校中退した。
ガイジとサヨク教師しかいないゴミ学校なので一ミリも後悔してない。
中退した理由は無駄だから。ChatGPTに聞けばわかることを10代の貴重な時間をかけていちいちやってる時間が無駄の極み。
つーか成績の基準が変。ChatGPTに負ける斜陽産業ができることが褒められて、日本のメインカルチャーのアニメイラストゲームに全力注ぐことはサボりとか言って全否定。
オタク差別は減ったとか年上の人が言うけど、日本のオタク差別は今もなくなってない。
メインカルチャーなのに詳しくても全く点数になってない
アニソンゲーソンじゃなくてゴミクズの化石みたいなクラシック、Vtuberや声優じゃなくて大昔の知らんおっさん、何かのゲームの乱数計算でもない意味のない数学。
イラストも課題優先で自分の描きたいキャラで出しても点数つけない。
結局メインカルチャーなのにいまだに全ての中心にされてない。
はてぶの上位にちょいちょい載ってる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等の特定のサイトだけデカくみえる理由の説明にはならないのです。
なんなんすかね?
俺が考えた最強の少子化対策
子供2人目に1000万円、子供3人目産むと総額1億円くらいの段階的支給
財源は独身男女から取る、そのために30以上の子無し女、40以上の子無し男からの懲罰的課税(年齢累進課税)を導入する
懲罰的課税は生活保護世帯・住民税非課税世帯などでも減額されず帳簿上の負債が溜まっていくようにする。国民医療保険や高額医療費制度の権利も剥奪する
要するに子供を最低一人養わないとほぼ死ぬしかないという社会を作る
これをすると女はともかく子供が作れないモテない男がまじで死ぬしかないし単に治安が悪くなって終わるだけなので
その前段階として人工子宮・人工出産の研究に国をあげて投資する
受精には卵子が要るので18歳から22歳までの卵子凍結の奨励、義務にするか高額の謝礼を払う(健康な卵子1個につき100万とかでいい。つまり女は一定期間、人によっては生きてるだけで年収1200万となる)
養子取りの男性差別をやめて未婚男でも養子を取れるように、凍結済みの卵子と人工子宮での子づくりシステムを使えるようにもする
俺は国語と精神と頭が弱くてここの住民にうまく伝わるかわからないけど
題名の通り
「宝くじとか空くじ 億千万円とか当たるわけないだろ ばっっっっっっっかじゃねーの 赤ちゃんバブー」
とか 言ってた俺に一等前後賞が当たった
本当に嬉しい けど同時に震えて怖くなった
年末がパァになった
家と銀行とをいったりきたりした 道中で怖さと疲れでめげそうになったのをなんとかがまんした
当たって浮かんだのは「これ全てを俺1人で抱えるのか」だった
どこかの増田が10年前とか2年前とかに俺と同じくらいかそれ以上の金額を当てたことを思い出した
俺も当てた 当てたくて当てた そうだから
当たる前はつかいみちはバカ面に鼻垂らしてうへうへ無限に考えてたのに今では「どうしよう」の言葉が脳みそに泳いでて
何もできなくなった
まえの俺の知る高額増田のブコメとかに「1億ははしたがね あぶくぜに うたかたのゆめ 現実見ろ」って散々散々言われてたのを見たし
俺も「投資しろ」とか当たってもないのにウエメセで言ってたから
俺は恥ずかしくて仕事辞められなかった
「夢じゃないんだ 本当に抱えるんだ」と思った
膝がガコガコして女の子みたいにぺちゃーって床に座った
俺はもう文章で察せるだろうが
投資とかカネ増やしとか そんなの俺がするもんじゃないって思ってた
その日死ななければオッケーで生きてた 今は死にそう
ブコメは大金は刺して欲しいやつがうじゃうじゃいるって言ってたから俺も刺されようと思った
そしたら父ちゃんに低い声でさとされて「身内にでも教えるものじゃない」って言った
俺は自慢が借金はないこと
でも高卒でおまけにバカだからここの住民みたいな 頭いい勉強は知らない
本当にバカなの
お金がもらえるらしくてやりたかったけど ボタンが多くて失敗した
俺はバカだから宝くじの300円とか3000円とか当たったら喜んだ
億とか数えれないし 競馬とかパチンコみたいに難しいのを考えなくていいからよかった
誰か助けてくれ まじ怖い
いろんなコメ見たけどみんな俺を心配してくれてて心があったかくなった ありがとな
父ちゃんを褒めるコメがいっぱいあって俺が嬉しくなった 俺の父ちゃんはすごいんだぞ
とりあえず俺は引っ越すことになった 父ちゃんも引っ越すかもしれないって言ってた
最初の使い道はこれかもしれない 父ちゃんは「俺の引っ越し資金は俺が出すからお前の金は出すな」って言った
そんで俺も父ちゃんも電話の番号と会社を変えた そうした方がいいって父ちゃんが言ってたから
契約が俺がどんくさくて父ちゃん同伴するんだけど 頼りになる 頼りにしちゃいけないんだけど
何でもかんでも父ちゃんに押し付けてていい歳して情けないけど 俺には父ちゃんしかいないから
いつか恩返し山ほどしたいな
あと住民 ありがとな 大好きだ
NPCとの交換によって入手できるポケモンの仕様は作品によってまちまちだが、多くの場合は性格値(PID)や個体値が固定化されていて、乱数調整することができない。
しかし一部のポケモンについては、固定乱数と同様の乱数値によって生成されるため、乱数調整することが出来る。
特に、XDでギンザルと交換できるヨーギラスなどは、色違いにすることも可能であることが知られている。
なお、この際はギンザルの表ID(TID)と、プレイヤー自身の裏ID(SID)の組み合わせで個体検索をする必要があった。
先に結論から書いておくと、ルリ/テツからもらえるポケモンは乱数調整できるが、色違いにすることはできない。ここから以下はその検証の過程になる。
他のNPCとのイベントが発生している場合などに連絡できないことがある。日付が変わった直後にライモンシティ内でライブキャスターを起動するのが安全か。
第5世代において、不定消費がある場合は、お馴染みのおしゃべりペラップによる初期seed特定を行う必要がある。音の高低を判断するため、録音も必須になる。
上記のように消費速度が非常に速いため、出来るだけ起動後すぐにメニューを開き、任意消費終了後には素早く話しかけられるようにしたい。
上記のギンザルのケースがあるので、IDの組み合わせを含めた条件をいくつか変えながら乱数調整を行った。