「変数」を含む日記 RSS

はてなキーワード: 変数とは

2024-08-24

ゲーム配信視聴者側でレベル0.5くらいにイラッとすること

多人数マルチゲーや長時間配信で明らかに家庭用安物ルータが泡吹いて死んで「あれ~おっかしいな~繋がらないな~見えないな~」ってやってる時間

立派なゲーミングパソコン揃えてるんだろうよ、回線吟味して速い光回線引いてんだろうよ。でも間に入ってるそのルータ、nuroの必須ルータバッファローのワイファイか知らねえけどさ、本棚の後ろに突っ込まれ熱暴走してるか、ソフトポンコツNAT溢れしてるかどっちかで死にかけてるだろ。

NVR500の中古でも何でもいいから強いルータに変えるなり安物ゲーミングならちゃんと風当てて冷やすなりパケロスしないようにしてくれよ。回線ガチャって言うけどネット回線業者けが変数じゃねえだろ。それかもうVPN張って無理矢理TCPセッションを1本に絞るとかさ、「また〇〇さんが繋がらないな~」「あれ~突然調子悪くなったな~」って毎回毎回毎回毎回毎回毎回毎回同じことすんなよ。裏ではDiscordで繋がってんだろ、何か知り合いのプロに聞いて同業者対策回せよ。

大手の箱はある時から一気に減ったぞ。

2024-08-20

ソースコードコメントはいらない

昔の慣習に倣ってコメントを丁寧に書く人がいまだに居るけれど

99%の場面でコメント必要無い

以前のコードコメントアウトしているようなソースは論外として

例えばメソッド関数の頭にそれが何をする関数なのかを書いている人が多いけれど

メソッド名や引数名、戻り値の型をキッチリ付けておけば分からないことなんて無い

それ以上の複雑な処理をするなら機能分解するべきだし名前を付けにくい処理の場合そもそも設計おかし

昔は便利なIDEが無かったので変数関数名前に長い名前を付けると実装が大変で

仕方なくx1だとかval2だとかを使って実装してたのでコメントに書いておくようなこともあったけれど

Copilotを使える時代コメントを書く必要なんて皆無だし

仮に意味が分からないコードがあってもCopilotに聞けばいいのでやっぱりコメント必要ない

コメントがあった方が良い場合は「この実装はこのアルゴリズムに基づいて実装している」とURLリンクを貼ったり

「この規則があるのでこういう実装をしている」とRFCを貼ったりするとかはあるけれど

それもほとんど変数名だとかで解決できるし、あっても1行で終わるレベル

そういう実装全体の設計に関するような話はReadmeに書けば良いのでソースコード内のコメントとしては必要無い

「それでも無いよりはいいでしょ?」みたいに言う人いるが逆に問題になることも多い

コメントバイアスされてソースコード確認が疎かになったり

コメント内容と実装が違う場合にどっちが正解なのかが分からなくなったり

ソースコード修正に対してコメント修正されていなくて後々で揉めたりする

当然ながらコメント部分にはLintが効かないので(ChatGPT使えば作れそうな気もするが)

チェック内容も増えるし良いことがほとんどない

ヤバいJTCとかは「各行にコメントを書いて下さい」とか言ってきて正気の沙汰じゃ無い

まぁそういう案件が来たらChatGPTに丸投げするとは思うけれど下手すると「Copilot禁止」とかも言い出しそうだな

書いたところで誰も読まないのにアホすぎる

2024-08-19

物理学形式化についての概要

都市伝説によれば、かつてアインシュタイン古典的重力理論一般相対性理論」を理解していたのは3人だけだったと言われている。

それが真実かどうかは別として、その3人のうちの1人がダフィッド・ヒルベルトである。彼は、今日の初学者でも一般相対性理論理解できるように、それを数学で明確かつ正確(すなわち厳密)に形式化した。

古典的アインシュタイン重力は、時空上の擬リーマン計量のモジュライ空間上のスカラー曲率密度汎関数積分臨界点の研究にすぎない。

物理学基本的理論数学での基本的な定式化を持つべきだと信じたことで、ヒルベルト本質的アインシュタインを先取りすることができた。そのため、この汎関数現在アインシュタインヒルベルト作用汎関数と呼ばれている。

ヒルベルトは、1900年の有名なヒルベルト問題の一環として、この一般的アイデアを以前から提唱していた。ここでヒルベルトの第6問題は、物理学理論公理を見つけることを数学者に求めている。

それ以来、そのような公理化のリストが見つかっている。例えば、

物理学数学
力学シンプレクティック幾何学
重力リーマン幾何学
ゲージ理論チェルン・ヴェイユ理論
量子力学作用代数
ポロジカル局所量子場理論モノイダル(∞,n)-カテゴリ理論

このリストには注目すべき2つの側面がある。一方で、数学の最高の成果が含まれており、他方で、項目が無関係で断片的に見えることだ。

学生時代ウィリアム・ローヴィアは「合理的熱力学」と呼ばれる熱力学公理化の提案に触れた。彼は、そのような連続物理学基本的な基盤は、まず微分幾何学自体の良い基盤を必要とすることに気づいた。彼の生涯の出版記録を見てみると、彼が次の壮大な計画を追求していたことがわかる。

ローヴィアは、最初の2つの項目(圏論論理、初等トポス理論代数理論SDG)への画期的な貢献で有名になった。なぜか、このすべての動機である3番目の項目は広く認識されていないが、ローヴィアはこの3番目の点を継続的に強調していた。

この計画は壮大だが、現代基準では各項目において不十分である

現代数学自然トポス理論/型理論ではなく、高次トポス理論/ホモトピー型理論に基づいている。

現代幾何学は「変数集合」(層)だけでなく、「変数ホモトピー型」、「幾何学ホモトピー型」、「高次スタック」に関する高次幾何学である

現代物理学古典的連続物理学を超えている。高エネルギー(小さな距離)では、古典物理学は量子物理学特に量子場理論によって精緻化される。

したがって、高次トポス理論で定式化された高次微分幾何学における高エネルギー物理学の基礎が必要である

2024-08-18

anond:20240818175655

個人で見れば、その個人より遥かに高ければ高学歴・その個人より遥かに低ければ低学歴

ただし人によってはプライドからゲタを履くものもいるし、高低を決める変数は人によって異なる。

集団で見れば、学歴レベル1の集団では学歴レベル2は高学歴だが、学歴レベル3の集団では学歴レベル2は低学歴

ただし一定水準の集団ではグローバル化し、学歴タイトルとして機能しにくくなり実績ベースになる。

2024-08-15

スターの多い順にブコメを並び替える

FANZAの検索結果から熟女を除外するブックマークレット がうまく動いたので、気を良くしてはてなブックマークコメント欄スター数順にソートするブックマークレット作りました

作った動機は、「注目コメントに入りきれなかったちょっといいコメント」をサクサク探したいから。結果として建設コメント順位付けモデル無効化していますが、あのアルゴリズムには特に不満は特にありません。

ブックマークレット

javascript: (async () => {
const wait = ms => new Promise(resolve => setTimeout(resolve, ms));
document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);
window.scrollTo(0, 0);
await wait(1000);
const p = document.querySelector('.js-bookmarks-recent');
let l = Array.from(p.querySelectorAll('.entry-comment-contents'));
const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};
l = l.filter(e => g(e) > 0);
l.sort((a, b) => g(b) - g(a));
p.replaceChildren(...l);
})();

ミニファイしたものコードに一部誤りがありましたので訂正しました(2024-08-16 11:47)

javascript:(async()=>{const wait=ms=>new Promise(resolve=>setTimeout(resolve,ms));document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();window.scrollTo(0,document.body.scrollHeight);await wait(1000);window.scrollTo(0,0);await wait(1000);const p=document.querySelector('.js-bookmarks-recent');let l=Array.from(p.querySelectorAll('.entry-comment-contents'));const g=e=>{let n=e.querySelectorAll('.hatena-star-star').length;const c=e.querySelector('.hatena-star-inner-count');return c?n+Number(c.textContent):n};l=l.filter(e=>g(e)>0);l.sort((a,b)=>g(b)-g(a));p.replaceChildren(...l)})()

使い方

FANZAの検索結果から熟女を除外するブックマークレット 参照

コード解説

コード説明にダサイところがあったら厳しく指摘して下さい。

javascript:

ブックマークレット必要な、URLの種類を示すスキーム名です。

(async () => {
// 処理
})();

ページに元々ある変数たちとバッティングしないように、まず無名関数ラップします。処理の中で await を使いたいので async 宣言しています

const wait = ms => new Promise(resolve => setTimeout(resolve, ms));

処理の途中で待ち時間を設けるための関数です。便利。

document.querySelector('.js-bookmarks-sort-tab[data-sort="recent"]').click();
window.scrollTo(0, document.body.scrollHeight);
await wait(1000);

「新着コメント」タブをクリックし、ページの一番下までスクロールダウンしてから少し待つ動作です。新着コメントの後半部分(スクロールきっかけの遅延読み込みになっているところ)の読み込みをうながしています

window.scrollTo(0, 0);
await wait(1000);

ページの先頭に戻ってまた少し待ちます。合計2秒の待ち時間雰囲気で決めていますので、これでなければならない・これで過不足ないという値ではありません。単にコメントの読み込み完了を判定する処理を書くのがめんどうだっただけです。

const p = document.querySelector('.js-bookmarks-recent');

新着ブコメの親要素です。繰り返し呼び出すので名前をつけています

let l = Array.from(p.querySelectorAll('.entry-comment-contents'));

コメントをすべて配列に格納します。

const g = e => {
let n = e.querySelectorAll('.hatena-star-star').length;
const c = e.querySelector('.hatena-star-inner-count');
return c ? n + Number(c.textContent) : n
};

コメントはてなスター数をカウントして返す関数です。たくさんスターがついてる ★256★ みたいなやつの数字も足します。

l = l.filter(e => g(e) > 0);

ソートする前に、無スターコメントを消去しています。してもしなくてもいいことですが。

l.sort((a, b) => g(b) - g(a));

残ったコメントスター数で降順ソートします。.querySelectorAll() で収集した要素を配列に入れ直したのは、この .sort() メソッドを使いたいからです(.querySelectorAll() が返す配列風の NodeList オブジェクトは、配列共通メソッドもいくつかあるものの、大半は使えないのです)。

p.replaceChildren(...l);

親要素の内容を、並び替えの終わったコメントそっくり入れ替えて、処理完了です。画面を見ると新着コメントの中身が「スターのついたコメントのみ・スターの多い順」に並んでいます。元に戻す方法はないので、原状回復にはリロードします。ソート状態を示すフラグを立てておいてスターソート⇔日付ソートをかわりばんこに行うようにすればできそうだなと思ったけど実装しません。連打スターを省く処理を追加してUU数でソートできればもっと厳正なランキングになるなーと今思いつきましたがそれも実装しません。

2024-08-14

FANZA検索結果から熟女を除外するブックマークレット

興味のない作品検索結果に混じるのは邪魔ですよね。

私は熟女モノとか人妻モノは眼中にないのですが、なぜだか最近そっち系作品が多くて閉口しています

しかFANZA側の検索システムはNOT検索できるようになっていません。そこで、検索結果から除外できそうなものを除外するブックマークレットを作ることにしました。

さいわい近年は内容の概要文をそのままタイトルにしたような作品ばかりなので、タイトルに含まれキーワードで除外が簡単にできそうです。

熟女」とか「五十路」のような単語を含む作品非表示にしてしまえばよいのです。

ブックマークレット

javascript: (() => {
const r = /熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;
const q = '#list>li';
document.querySelectorAll(q).forEach(l => {
if (r.test(l.textContent)) {
l.remove();
}
});
})();

ミニファイしたもの

javascript:(()=>{const r=/熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;const q='#list>li';document.querySelectorAll(q).forEach(l=>{if(r.test(l.textContent)){l.remove()}})})()

このブックマークレットで、検索結果に含まれ熟女作品の数を1/3くらいにまで減らすことができます

使い方

ブックマークレットとは、ブックマークURLではなくJavaScript登録して、閲覧中のページ上で自分(やほかの誰か)が作ったプログラムを実行できるしくみのことです。普通ブックマークと同じようにブックマークバーなどに並べておいて、クリックひとつで呼び出すことができて便利です。

登録のしかたは簡単PCChromeを例に説明します。

①まず、どこのページでもいいので(今読んでいるこのページでもよい)ブックマークひとつ作り、ブックマークバーなどの呼び出しやすいところに置きます

②できたブックマーク右クリックして「編集...」を選びます

③「名前」欄は、自分にわかやす名前に変更します。でも「FANZAフィルター」などあけすけな名前をつけると、誰かに画面を覗かれた時に困りますよ。

④「URL」欄に、上記したプログラムコード入力します。ただし上記コードは私向けのキーワード選定になっていますので、ご自身の好みに合わせたキーワード選定をしていただければよいかと思います/単語1|単語2|単語3/ のように記述してください。

ふつうソースコードと、改行・インデントなどを省いてミニファイ(最小化)したもの、どちらをコピペしても大丈夫です。

編集の済んだブックマークレットを保存します。

FANZA動画検索します。

⑦このブックマークレットを起動します。すると、瞬時に検索結果が減ります

キーワードけが異なる複数ブックマークレット登録しておいて、場面に応じて使い分けるなどの工夫もできるでしょう。

コード解説

上記スクリプトが何か悪さをするようなものではないことを説明するために、また、JavaScript学習し始めたばかりの人のために、このシンプルスクリプト解説します。

javascript:

URLの種類を示すスキーム名です。一般的URLhttps:mailto: などで始まりますが、javascript: と書くと、これに続くコードプログラムとして実行されます

(() => {
// 処理
})();

ここからJavaScript です。まず処理全体をくるむ大きなカッコと最後に付け足された () は、自己実行無名関数という形式です。今回のブックマークレット変数を含みますので、実行するページに元々ある変数たちとバッティングしないようこのようなかたちにします。

const r = /熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/;

除外したい単語を羅列した正規表現です。個人個人で設定が変わる部分なので、編集やすいように切り出しておきました。

const q = '#list>li';

フィルター対象とするHTML要素群のクエリセレクター文字列です。検索結果に一覧表示される、個々の作品要素を選択します。FANZAシステム改修を行うと変わってしま可能性がある部分なので、メンテやすいようにここだけ切り出しておきました。

document.querySelectorAll(q).forEach(l => {
// 処理
});

クエリセレクター q に一致する要素 l ひとつひとつについて反復して処理を行います

if (r.test(l.textContent)) {
l.remove();
}

もし要素 l 内のテキスト正規表現 r と一致していたら、要素 l を取り除く、という処理です。正規表現 rキーワードの羅列ですので、テキストの一部にキーワードのどれかが含まれていたら一致したことになります

魂の叫び

追記

NOT検索できるよ。俺はこの検索結果をブックマークしている「サンプル -近親相姦 -MM号 -義母 -義父」

ほ、ほんまや……!!!

2024-08-10

幸福論っておもろいなぁ

今日は「幸福資本論」を数学的に定式化することに挑戦してみたんやけど、これがほんまに奥深いテーマやわ。

この理論は、幸福を「金融資本」「人的資本」「社会資本」の3つの資本説明してるんやけど、これを数学的に表現するのはなかなかの挑戦や。

まず、幸福を数式で表現するために、3つの資本をそれぞれ F(金融資本)、H(人的資本)、S(社会資本)とするやろ。

ほんで、幸福 U(utility)を求める関数を考えると、次のような多変数関数で表せるんちゃうか?

 

U(F, H, S) = α ⋅ log(F + ε) + β ⋅ log(H + ε) + γ ⋅ log(S + ε)

 

ここで、α, β, γ は各資本幸福に与える影響の重みや。ε は、資本ゼロときでも対数定義できるようにするための小さな定数や。

この式の背後には、効用関数一般的仮定があるんや。

例えば、資本が増えると幸福も増えるけど、その増え方は次第に鈍化する、

まり限界効用逓減の法則が成り立つんや。

これを対数関数表現することで、現実的モデルになっとるわけや。

さらに、8つの人生パターン考慮するためには、各資本の重み α, β, γ をパターンごとに変える必要があるんや。

これを行列表現すると、人生パターンごとに異なる重みベクトル wᵢ = (αᵢ, βᵢ, γᵢ) を用意して、幸福関数を次のように拡張できるで:

 

Uᵢ(F, H, S) = wᵢ ⋅ [log(F + ε), log(H + ε), log(S + ε)]ᵀ

 

ここで、i は人生パターンインデックスや。このようにして、個々の人生パターンに応じた幸福計算ができるようになるんや。

さらに、これを最適化問題として考えることもできるで。例えば、限られたリソースをどの資本に配分するかを考えるとき、次の制約付き最適化問題を解くことになるんちゃうか?

 

maximize Uᵢ(F, H, S)

subject to C(F, H, S) ≤ B

 

ここで、C は資本コスト関数で、B は予算の制約や。この問題を解くことで、最適な資本配分が見つかるんや。

今日はこの辺にしとくけど、こうやって数学的に考えると、幸福構造もっとクリアに見えてくるんちゃうかな。

2024-08-06

最適投資戦略

1. 確率動的計画法による最適投資戦略

連続時間モデルにおいて、最適投資戦略Hamilton-Jacobi-Bellman (HJB) 方程式を解くことで導出される。

投資家の効用関数を U(x) とし、リスク資産価格過程幾何ブラウン運動

dSₜ/Sₜ = μdt + σdW

で表す。ここで、Wₜ はウィナー過程である

このとき、最適な投資比率 π*(t,x) は以下の HJB 方程式を解くことで得られる:

0 = sup_π { U'(x)(rx + (μ-r)πx) + ½U''(x)σ²π²x² + V_t }

ここで、V(t,x) は価値関数、r は無リスク金利である

2. マルチンゲール法によるオプション価格評価

完備市場仮定し、リスク中立測度 Q のもとでのオプション価格を導出する。

ヨーロピアンコール・オプション価格 C(t,S) は以下で与えられる:

C(t,S) = e^(-r(T-t)) E_Q[(S_T - K)⁺ | F_t]

ここで、K は行使価格、T は満期、F_t は時刻 t までの情報集合である

Black-Scholes モデルの下では、この期待値は解析的に計算可能であり、以下の公式が得られる:

C(t,S) = SN(d₁) - Ke^(-r(T-t))N(d₂)

ここで、N(・) は標準正分布の累積分関数、d₁ と d₂ は所定の公式で与えられる。

3. 確率ボラティリティモデル派生証券価格付け

Heston モデルなどの確率ボラティリティモデルでは、ボラティリティ自体確率過程に従うと仮定する:

dSₜ/Sₜ = μdt + √vₜdW¹ₜ

dvₜ = κ(θ-vₜ)dt + ξ√vₜdW²ₜ

ここで、W¹ₜ と W²ₜ は相関 ρ を持つウィナー過程である

このモデルの下でのオプション価格は、特性関数法を用いて数値的に計算される。

4. 最適執行戦略市場インパクトモデル

大口注文の最適執行を考える。Almgren-Chriss モデルでは、以下の最適化問題を解く:

min_x E[C(x)] + λVar[C(x)]

ここで、C(x) は執行コスト、x は執行戦略、λ はリスク回避度である

市場インパクト線形仮定すると、最適執行戦略時間に関して指数関数的に減少する形となる。

5. 極値理論とテールリスク管理

極値理論を用いて、稀な事象リスク評価する。一般極値分布 (GEV) を用いて、最大損失の分布モデル化する:

F(x; μ, σ, ξ) = exp{-(1 + ξ((x-μ)/σ))^(-1/ξ)}

ここで、μ は位置パラメータ、σ はスケールパラメータ、ξ は形状パラメータである

これにより、通常の VaR や ES では捉えきれないテールリスク評価できる。

6. 確率制御理論と動的資産配分

確率制御理論を用いて、時間変動する市場環境下での最適資産配分を導出する。

状態変数 Xₜ の動学を

dXₜ = μ(Xₜ,αₜ)dt + σ(Xₜ,αₜ)dW

と表し、制御変数 αₜ に関する最適化問題を解く:

sup_α E[∫₀ᵀ f(Xₜ,αₜ)dt + g(X_T)]

ここで、f は瞬間的な報酬関数、g は終端時点での報酬関数である

この問題は、前述の HJB 方程式を解くことで解決される。

2024-08-05

意識数理モデルの具体化

1. 抽象状態空間

Ωを仮に100次元の実ベクトル空間R^100とする。各次元特定の神経活動パターン対応する。

Ω = {ω ∈ R^100 | ||ω||₂ ≤ 1}

ここで||・||₂はユークリッドノルムである。τは標準的ユークリッド位相とする。

2. 一般観測作用素

観測Oを10100の実行列として定義する。

O : Ω → Ω

O(ω) = Aω / ||Aω||₂

ここでAは10100の実行列で、||Aω||₂ ≠ 0とする。

3. 一般エントロピー汎関数

シャノンエントロピー連続版を使用して定義する:

S[ω] = -∫Ω p(x) log p(x) dx

ここでp(x)はωに対応する確率密度関数である

4. 観測によるエントロピー減少の公理

任意観測Oに対して以下が成立する:

S[O(ω)] ≤ S[ω] + log(det(AA^T))

5. 抽象力学系

非線形常微分方程式系として定式化する:

dω/dt = F(ω) + G(ω, O)

F(ω) = -αω + β tanh(Wω)

G(ω, O) = γ(O(ω) - ω)

ここでα, β, γは正の定数、Wは10100の重み行列tanhは要素ごとの双曲線正接関数である

6. 一般情報幾何

フィッシャー情報行列を導入する:

g_ij(ω) = E[(∂log p(x|ω)/∂ω_i)(∂log p(x|ω)/∂ω_j)]

ここでE[・]は期待値、p(x|ω)は状態ωでの条件付き確率密度関数である

7. 抽象量子化

状態ωに対応する波動関数ψ(x)を定義する:

ψ(x) = √(p(x)) exp(iθ(x))

ここでθ(x)は位相関数である

8. 一般統合情報理論

統合情報量Φを以下のように定義する:

Φ[ω] = min_π (I(X;Y) - I(X_π;Y_π))

ここでI(X;Y)は相互情報量、πは可能な分割、X_πとY_πは分割後の変数である

9. 普遍的学習

勾配降下法を用いて定式化する:

ω_new = ω_old - η ∇L(ω_old, O)

L(ω, O) = ||O(ω) - ω_target||₂²

ここでηは学習率、ω_targetは目標状態である

10. 抽象因果構造

有向非巡回グラフ(DAG)として表現する:

G = (V, E)

V = {v_1, ..., v_100}

E ⊆ V × V

各頂点v_iはω_iに対応し、辺(v_i, v_j)はω_iからω_jへの因果関係を表す。

実装例:

このモデルPythonとNumPyを用いて以下のように実装できる:

import numpy as np
from scipy.stats import entropy
from scipy.integrate import odeint
import matplotlib.pyplot as plt

class ConsciousnessModel:
    def __init__(self, dim=100):
        self.dim = dim
        self.omega = np.random.rand(dim)
        self.omega /= np.linalg.norm(self.omega)
        self.A = np.random.rand(dim, dim)
        self.W = np.random.rand(dim, dim)
        self.alpha = 0.1
        self.beta = 1.0
        self.gamma = 0.5
        self.eta = 0.01

    def observe(self, omega):
        result = self.A @ omega
        return result / np.linalg.norm(result)

    def entropy(self, omega):
        p = np.abs(omega) / np.sum(np.abs(omega))
        return entropy(p)

    def dynamics(self, omega, t):
        F = -self.alpha * omega + self.beta * np.tanh(self.W @ omega)
        G = self.gamma * (self.observe(omega) - omega)
        return F + G

    def update(self, target):
        def loss(o):
            return np.linalg.norm(self.observe(o) - target)**2
        
        grad = np.zeros_like(self.omega)
        epsilon = 1e-8
        for i in range(self.dim):
            e = np.zeros(self.dim)
            e[i] = epsilon
            grad[i] = (loss(self.omega + e) - loss(self.omega - e)) / (2 * epsilon)
        
        self.omega -= self.eta * grad
        self.omega /= np.linalg.norm(self.omega)

    def integrated_information(self, omega):
        def mutual_info(x, y):
            p_x = np.abs(x) / np.sum(np.abs(x))
            p_y = np.abs(y) / np.sum(np.abs(y))
            p_xy = np.abs(np.concatenate([x, y])) / np.sum(np.abs(np.concatenate([x, y])))
            return entropy(p_x) + entropy(p_y) - entropy(p_xy)
        
        total_info = mutual_info(omega[:self.dim//2], omega[self.dim//2:])
        min_info = float('inf')
        for i in range(1, self.dim):
            partition_info = mutual_info(omega[:i], omega[i:])
            min_info = min(min_info, partition_info)
        
        return total_info - min_info

    def causal_structure(self):
        threshold = 0.1
        return (np.abs(self.W) > threshold).astype(int)

    def run_simulation(self, steps=1000, dt=0.01):
        t = np.linspace(0, steps*dt, steps)
        solution = odeint(self.dynamics, self.omega, t)
        self.omega = solution[-1]
        self.omega /= np.linalg.norm(self.omega)
        return solution

    def quantum_state(self):
        phase = np.random.rand(self.dim) * 2 * np.pi
        return np.sqrt(np.abs(self.omega)) * np.exp(1j * phase)

# モデル使用model = ConsciousnessModel(dim=100)

# シミュレーション実行
trajectory = model.run_simulation(steps=10000, dt=0.01)

# 最終状態の表示
print("Final state:", model.omega)

# エントロピー計算
print("Entropy:", model.entropy(model.omega))

# 統合情報量の計算
phi = model.integrated_information(model.omega)
print("Integrated Information:", phi)

# 因果構造の取得
causal_matrix = model.causal_structure()
print("Causal Structure:")
print(causal_matrix)

# 観測の実行
observed_state = model.observe(model.omega)
print("Observed state:", observed_state)

# 学習の実行
target_state = np.random.rand(model.dim)
target_state /= np.linalg.norm(target_state)
model.update(target_state)
print("Updated state:", model.omega)

# 量子状態の生成
quantum_state = model.quantum_state()
print("Quantum state:", quantum_state)

# 時間発展の可視化
plt.figure(figsize=(12, 6))
plt.plot(trajectory[:, :5])  # 最初の5次元のみプロット
plt.title("Time Evolution of Consciousness State")
plt.xlabel("Time Step")
plt.ylabel("State Value")
plt.legend([f"Dim {i+1}" for i in range(5)])
plt.show()

anond:20240804172334

2024-08-04

宝くじ数学

まず、主要な変数定義する:

販売側の利潤 P は以下のように表現できる:

P = xN - Σ X_i n_i

ここで、xN は総売上、ΣX_i n_i は総当選金額である

販売数 N は購入需要 M(x) と販売上限 N_max の小さい方になる:

N = min(M(x), N_max)

購入需要 M(x) は価格 x の減少関数仮定する。例えば:

M(x) = a - bx (a, b > 0)

ここで、a は最大需要、b は価格感応度を表す。

制約条件:

- 総当選確率:Σ (n_i/N) ≤ 1

- 期待値条件:E = (Σ X_i n_i)/(xN) < 1(宝くじ期待値は購入価格より小さい)

これらの条件を満たす x, X_i, n_i を求めることで、利潤を最大化する戦略が得られる。

実際の最適化では、以下の要素も考慮する必要がある:

1. 購入者心理:大きな賞金の魅力と当選確率バランス

2. 法規制:最低当選確率や最高賞金額制限

3. 社会的責任:過度の射幸心を煽らない配慮

4. その他、季節変動、競合、社会情勢、など

2024-07-28

『出生時に割り当てられた性別』という用語問題があり、非科学

by リチャード・ドーキンスアラン・ソーカル 4/8米紙掲載和訳

https://note.com/wypcg332/n/n2fd87efc404f

ほぼすべての動物、および多くの植物有性生殖を行います有性生殖を行うすべての種において、これは大きな配偶子卵子または卵と呼ばれる)と小さな配偶子精子と呼ばれる)を組み合わせることで行われます。一部の雌雄同体の植物動物卵子精子の両方を生産しますが、両方を生産する哺乳類の種は存在しません。哺乳類では、各個体一種類の配偶子のみを生産します。(比較的少数の)卵子生産する個体は雌(female)と呼ばれ、(大量の)精子生産する個体は雄(male)と呼ばれます哺乳類の胚が雄または雌に発達するかは、性染色体ペアによって決定されます

雌(female)はXX、雄(male)はXYです。

 

簡潔に言えば、すべての動物における性別sex)は配偶子の大きさによって定義され、すべての哺乳類における性別sex)は性染色体によって決定され、そして性別sex)は2つであり、ただ2つしかありません:

まり、雄(male)と雌(female)です。

 

もちろん、これは全く新しい情報ではありません。これらは1世紀以上前から知られており、一応まともな高校生物学の授業で扱う基本的な内容です。確かに突然変異や出生前の発達の特異性により、一部の個体生存可能配偶子を全く生成できない場合がありますしかし、Y染色体を持つ不妊個体は依然として雄であり、それはちょうど片足の人間が私達の二足歩行種の完全なメンバーであり続けるのと同じです。

 

XXとXY以外の染色体パターンを持って生まれ人間がごくわずかにいるという事実が、しばしば誤ってもっともらしく強調されます

最も一般的クラインフェルター症候群(XXY染色体)は、出生の約0.1%程度で発生します。これらの個体解剖学的に男性ですが、しばしば不妊です。ドラ・シャペル(De la Chapelle)症候群(0.003%)や、スワイヤー症候群(0.0005%)などの非常にまれ状態は、おそらく標準的な男(male)/女(female)の分類から外れてしまうでしょう。それでもなお、性別sex)の相違は、生物学において見られる他のどの区別と比べても、極めて明確に二元的バイナリ)です。

ではここから考えると、「出生時に割り当てられた性別("sex assigned at birth")」に関する医療団体の主張はどうなるでしょうか?

 

赤ちゃん名前は出生時に割り当てられます。これは誰も疑いません。しかし、赤ちゃん性別sex)は「割り当て」られるのではなく、受胎時に決定され、その後出生時に観察されます。まず外性器検査によって、そしてもし疑わしい場合染色体分析によって観察されます。もちろん、どんな観察にも誤りがある可能性があり、まれ出生証明書記載された性別不正確で、後に修正必要になることがありますしかし、観察の誤りやすさ(誤りがあり得るという性質)は、観察されるもの——人間性別——が、「割り当て」られるものではなく、血液型指紋パターンと同じように客観的生物学現実であるという事実を変えません。医療団体の表明する見解は、社会構築主義暴走した結果です。

 

性別sex)は人類という種の根源的な特徴です。心理学社会学公共政策における重要変数です。世界中で、殺人の大多数は男性によるものです。女性男性よりもはるかシングルペアレントになる可能性が高いです。これらの区別絶対的ではなく統計的ものですが、とても重要です。

性別sex)について率直に話し、書くことができなければ、私たち公共議論は貧弱になり、歪められます。そして、この損失が最も明確なのは医療の分野です。

 

何十年もの間、フェミニストたちは医学的診断と治療における性別という変数無視、そして女性身体男性身体と同じように反応・作用するという暗黙の前提に抗議してきました。2年前、権威ある医学誌『ランセット』がついにこの批判を認めましたが、しか編集者たちは明らかに女性」という言葉を使うことができませんでした。その代わりに、雑誌の表紙には「歴史的に見て、膣を持つ身体解剖学生理学無視されてきた」と説明されました。しかし今や、この両刃とも見える譲歩さえも失われる可能性があります生物学性別(biological sex)の否定が将来の医師たちの訓練を弱体化させる恐れがあるからです。

 

医療機関が生物学現実について正直に語ることをこのような新しい現象として躊躇しているのは、おそらくトランスジェンダーの人々の人権を守りたいという称賛に値する願望から来ているのでしょう。しかし、目標賞賛に値するものの、選択された方法は誤っていますトランスジェンダーの人々を差別ハラスメントから守るために、性別sex)がただ単に「割り当てられた」ものだと装う必要はありません。

 

社会的または政治的大義のために事実を歪めることは、それがどんなに正しい目的のものであっても、決して正当化はされません。もし大義が本当に正当なものであれば、現実世界についての事実を完全に受け入れた上でそれを擁護することができるはずです。

 

そして、科学自称する組織社会的大義のために科学事実を歪めるとき、その組織自身信頼性だけでなく、科学全般信頼性も損なわれます。もし医療機関が性別sex)のような単純なことについて、このように明らかにからさまに事実を誤って述べるのを見るときワクチンのような他の論争的な問題 ——医学コンセンサスが実際に正しい問題—— についての医療機関の声明を、一般公衆の人々がどうして信頼できるでしょうか?

2024-07-24

anond:20240723154823

え、おまえ本気で書いてる?

確率理解できないバカって、確定してない事象をそのまま扱うということが出来ない奴が多いんだけど、まさにその典型だな。

作者はリンダが銀行員かどうかを確定させてないぞ。

リンダが「銀行員である可能性を X% (X は0~100の任意の数値)と置けば、「フェミニスト運動に熱心な銀行員」は X% にさらフェミニスト運動に熱心である可能性(0~100% のいずれか)が加わると、0~X% になるだろ。

からリンダが「フェミニスト運動に熱心な銀行員である可能性 0~X% は、リンダが「銀行員である可能性 X% 以下なんだよ。

確定してない事象をそのまま扱うということが出来ないバカは X とか変数にしておけば考えやすくなるだろ。

これで分からないバカ義務教育やり直すか、投票権返上して人間自称するな。下等動物として生きろ。

まともな民主主義国家に居ていいレベルじゃない。

2024-07-13

anond:20240713093235

変数なんて教えなくていい派の俺が通りますよっと。

const が基本でいいし、ループmap とかで大体事足りる。

2024-07-10

anond:20240709224514

ここまで考えてちゃん投票して、投票後の結果も追って調べることができるのは素晴らしいことだと思うけどなあ。

前回は投票率55.00%で小池百合子の得票は3,661,371(59.7%)

今回は投票率60.62%で小池百合子の得票は2,918,015(42.8%)

もちろん立候補者とかの変数もあるけど、小池百合子に対する票はものすごく減ったわけで、これは本人からしてみたら楽観視出来ることでは無いと思うけれども。

こういう結果になったのも選挙に興味を持って、投票に行こうと思う人が増えたことが原因の一つ。

ただそれだけでも十分価値のあることだと思うよ。

2024-07-08

anond:20240708101114

お理工さんだねぇ。だいたい5変数くらいまでの、答えが一意に定まる話しかできない低知能。

社会問題を数十文字抽象化できるという誤解に気付かないようじゃ、AI様へのインプットの役に立たないゴミ人間まっしぐらよ。

2024-07-04

anond:20240704220203

知らなかったので、早速試してみたやで

みつきちゃん、ってかわいい女の子プログラミングを教わってみたやで

pybulletで二足歩行するロボットシミュレーション書いて、って頼んだら、ゴミのようなコードを返してきたやで…😟

しかも、自分提示するコードおかし理由もまったく見当はずれなんで、

駄目なプログラマーと会話してるみたいでイライラしたやで…😟

明日制御工学とかラプラス変換伝達関数の基礎から会話してみようと思うやで…😔

真面目な話、宣言した変数がまったく使われていないとか、Pythonはそういうのチェックする仕組みがないから書けちゃうけど、

最近プログラミング言語だと指摘してくれるよね

AIの書くコードにこういった無駄変数宣言があることが分かった

…、なんで俺が機械の書いたコード添削してるんだろう…😔

2024-06-28

anond:20210825230926

イマドキの理学部性は「ベクトル解析」なんかやらずに、多変数微分積分(曲面積分微分形式を使う)→多様体論なので。

教養物理教科書けがいつまでも臭い書き方をしている。

2024-06-27

後輩へ。「chatGPTやっぱ課金しないとダメっすね。人に聞いたほうが早いっすわ」ではない。

悪いのは君の質問文だ。

あなたアカウントがある、違いは」という質問から「ChatGPTのアカウントの種類と、それらの違いを教えて」という意味を汲むのはなんぼChatGPTでもムリだ。

そして君が周りの人に聞くと問題解決するのは、悪い質問文を良い質問文に翻訳するコスト他人押し付けいるかである

でも彼、不思議なことにプログラムは書ける。いや変数名はぐちゃぐちゃだし、修正依頼したら他の箇所がバグって戻って来るなんてのは日常茶飯なのだが、要求された機能ちゃんと動くものに仕上げて提出してくる力はあるのだ。だからたぶん、思考力はあって、それを自然言語を用いて整理したり、出力するのが不得手なだけなのだと思う。

でも君の雑談交じりのとりとめのない話から問題の要旨を汲むのは本当にきつい。

「こういう機能があって、昨日までは動いてたんですけど、いや違うな、一昨日までは動いてたんすよ、で、一昨日に修正してたら、突然緊急対応入って、それでやってたこと忘れちゃって、で、どんなんだっけなーっていろいろいじってたら、なんか動かなくなってたんすよね」ではない。

彼は本当にシームレスに、必要な話から雑談に移行するからいつも驚かされる。いつ動かなくなったか問題ではない。何が動かないか聞きたいのだ。

でもこっちが主導権取って全部聞いたらロジハラになってしまう。本当に勘弁してくれ。

2024-06-26

プロ出身者・機械学習出身者の問題コード

https://anond.hatelabo.jp/20240625191650

プロ出身者だけじゃなく、機械学習出身者も問題コードが多い

印象の問題ではなく実際に下記のようなコードが多い

念のため言っておくと底辺大や文系出身プログラマーも同様の傾向にある

正常系しか意識していない

一番多いのはコレで異常系の動作を全く意識していない

入力値に想定外のものが入ることを考えていなかったりI/Oに関わるエラーについても配慮がない

エラーが出たらとにかくtry-catchしてログ吐いて終わり」

ならまだマシな方で、「握りつぶして処理続行」みたいなことも平気でやる

「ここの処理でエラーログが出てるから対処よろしく

対処しました!(握りつぶし)」

とか滅茶苦茶多い

セキュリティに関する意識が低い

異常系の話と被るけど基本的性善説コード書くのでセキュリティの不備がめちゃくちゃ多い

API作らせてもリクエストの内容を信用して実装するしサニタイズチェックもしない

サーバー作らせてもroot共通ユーザーだけで運用するしファイル管理も滅茶苦茶

とにかく「目の前に与えられた課題を解く」だけのコードなので他のことに関する配慮が全く無い

定義しないし配慮しない

TypeScript使わせてもanyだらけだし、JavaとかだとObjectだらけ

うちはPythonでは型は使わないけど命名規則担保してるのにそれもガン無視実装する

結果としてできあがるのは

「一応、正常系では動いているけれど他の入力が来たときにどうなるか分からないし誰も修正できない」

っていうコード

最近はそういうコードはChatGPTにぶち込んで型付けて貰ったりするけど

8割ぐらいの確率でChatGPTも型付けできない状態になっててお手上げになる

コピペコードが異常に多い

ネット検索したコードコピペ、ではなくて

自分で書いたコードコピペめっちゃ多い

全く同じ処理なのにメソッド化しないでコピペしてたり

一部の変数を切り出すだけでメソッド化できるのにコピペしてる

そりゃ動くし性能も変わらないけど後でバグがあったり変更するときにすげー困る

これもChatGPTにぶち込んで「共通的な処理をメソッド化して」って言うとやってくれるのでめっちゃ便利

結果が出るだけでクソ遅い(機械学習出身者)

同じファイルをオンメモリに3回ぐらいロードしたり

ほぼ同じDBへの問い合わせが10回ぐらい走ってたり

クソ重いwhileループになってるメソッドフレンドリーに何回も呼び出したり

とにかく「最終的に出来上がるものが良好であれば時間がかかっても構わない」的なコードが非常に多い

プロ系はこういう人はあんまりいないんだが機械学習出身者はマジでこれ

彼らはデータを解析したり優秀なモデルを作るために頑張ってきたので継続的に処理負荷を減らす、みたいなことに意識が回ってくれない

「これはPoCですから

とか言うんだけど誰でも分かるようなクソ遅いコード書いておいて

「ここの処理は時間かかります

とかしれっと言ってくる

2024-06-25

優秀な人の特徴

1.「主体性」がある

2.「失敗」を恐れない

3.「限界」を超えて成し遂げた経験がある

4.自分で動かせる「変数」と「定数」を理解している

5.「弱み」が「強み」に変わることはないと理解している

2024-06-24

楽しめる仕事につきたかったなあ

俺、リーマン世代

気づいたらもう37歳。

はいもう経験ゼロ転職とか無理な年齢。

マネージメント経験でもあればいんだけど、なまじ大きい所に潜り込んじゃったせいで未だにほぼ平だよ。

名前だけ係長だけど、どうしようもねー新人教育して書類チェックするだけの最低ライン確保要員。

仕事はすっげーつまんねえ。

技術と関わることが全く出来ねえのがしんどすぎる。

個別顧客についての情報収集事情聴取特に相手が言い淀んでるネガティブな要素を聞き出すためになだめすかして貸し借り作るのがメインで業務の8割は「嫌われる勇気」みたいなのを出力することだ。

潤滑油とか緩衝材とかまさにそんな感じで耐え続けるだけのオッサンだ。

メンタル削られにいって、削られた分を回復して、また使い潰されるのが俺の仕事だ。

辛いぜ。

デリカシーのないクズ扱いされながら相手に踏み込んで、無能扱いされながら念の為確認を繰り返し、そんで結局最後には相手大事なこと言ってね―のが俺のせいになって全部組み直しだ。

くだらねえ。

つうか技術世界だって結局は誰かの思いつきとその場しのぎばっかじゃねえか。

何年も使うような変数名前思いつきで決めてるようなアホばっかじゃねえか。

マジでくだらねえよ。

要するにだ、どうせどこ行ってもつまんなかっただろうなってことだ。

マジでムカつくわ。

2024-06-23

anond:20240623053036

おつかれさまです (どのような事に従事されているか存じ上げませんが、一旦それに割り込む形で私が対話者として主体的に関わってよろしいでしょうか?/”こちから見て”あなた大事な用はおおきいことであるのでひとしきり労をねぎらわせていただいて)

 ┗あんたがどれほど疲れてるかなんて知らんがな 格下の私からみたらすごい大変なんやろなって そんなんしたら疲れてまうわと思うけどこっちも用事があるんですんませんけど割り込んでええかって意味

  ┗「つかれてへんわ」って自分自分基準でなんもしてないアピールされても「すごいですね」としか言えんやろがい 自分を語ってくれるんはありがたいけどそんな事はきいてないというか聞いてほしいことがあるって言ってんの

ごくろうさまです (どんな方の何事も誰かのために大切な用でありその価値自分世界観からみて重くあるから労をねぎらって)

 ┗苦労してるかどうかとか人生についての価値観とかは聞いてない 尊重していますよというスタンスから関係ない話をするけれども敵対的目線でお聞きするのではないですよというアピール

  ┗「くろうなんかしてないわ」ってだれもあなた人生を聞いたりしてへん いきなりちょっと関係ないっぽい話をするけどあくま社会的距離感もつでって事

挨拶で使う場合は「おはようございます」でも同じで、自分がそこにおる/いなくなるを告知する儀を割り込ませるための発言でゆってみたら変数宣言みたいなもん

いきなり出てきたら「はい!」で帰る時も「はい!」みたいなvarじゃなくてletとかconst使えって話

なんかするとゆうたらおらんなとおもったら「おるよ」とかそういえばおったっけとおもたらもういないみたいなtempな変数みたいな挨拶もせんやつに名前なんかいらんっちゅう話で個人名を「バイトくん」とかにしたらええって話

この度は って一期一会なのに何度もあるんかとか

お預かりします(自分店員なので料金精算の代行でありチップを頂かない事)を預かるだけやったら返せやとか

なんか全部真実描写自分の思い描いたままに発言しないと気が済まんというのは、文字書きの職業病かそのほかの病やと思うで

2024-06-15

anond:20240614231352

f(x, x1, x2, x3 ...) = y

みたいに変数を増やしてみませんか?😟

2024-06-08

MBTIやらADHDやらHSPやらさあ!!

自分を枠に押し込めてるわけ?

人間には外部を含めたあらゆる変数があり、一人として同じ人間は居ないんだから、お前には無限可能性があるんだが?

統計的科学的というけれど、それはあくま指標であって、いくらでも例外はあるっつーの!そもそもお前はまだ確定していない動く点なのだから、まだ何も始まっちゃいねえよなあ!

まあ確かに苦手なもんはあるかもだけどさあ、人間の脳って基本成長するし、さっきも言ったけど同じ人間は居ないし指標あくま指標なんですわ!

まり、お前自分可能性を諦めんなよ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

あ~つれえ、くそ〜〜自分励ましててみても全然絶望取れないよ〜〜〜もう諦めたいよ〜〜〜ADHDでINFPってなんなんだ!!!うっせえ俺は自由意志を持つ人間様だぞ!!!!!バーーーーーカ

2024-06-07

anond:20240607120426

変数不動産価格を入れて研究しないとダメな気がするな

不動産価格が高くなると少子化するという研究はたくさんある

とはいえ、おっしゃる通りで金持ちも三人で打ち止めところが大半だよなとは思う

ログイン ユーザー登録
ようこそ ゲスト さん