はてなキーワード: 関数とは
JavaScript は、数ある言語の中でも最も特殊な言語だと言える
駆け出しエンジニアに限らず、どんなエンジニアでも学ぶべき言語だ
JavaScript は、言語(ECMAScript と呼ばれる)とランタイムで用意された機能(ブラウザとか Node.js とか)との両方を覚える必要があるが、
とりあえず言語仕様をしっかり覚えよう。少なくとも関数式を当たり前に使えて、メソッドチェーンで配列を処理できるようになって、Promise をある程度使えるくらいまでは必須
その先はフレームワーク(React とか)を覚えていくことになるだろうけど、もし JavaScript を適当にやっていたらここで勉強効率が下がる
Node.js もあり、色々なプラットフォームでも当たり前にサポートされているので、JavaScript はとても効率のよい言語だ
TypeScript は、基本的には JavaScript に変換される言語。型があってコンパイルできることで開発の安全性が高まる
本気で理解しようとすると難しいけれど、JavaScript の片手間に覚えていくのが良い
流行りの LLM とかをやる場合、Python を学ぶとよい。ある程度の文法を覚えると、自力で色々と書けるようになって楽しいだろう
ただ何かやりたいことがあり、ライブラリとかを使いこなそうとすると、当然ながらそれ専用の知識が必要になるので注意
サーバーサイドでコードを書く場合、駆け出しエンジニアに Go は良い選択肢になる
文法も難しくないし、いっぱい資料もあるし、現場でも使われているので、サーバーでプログラムを書くならまず Go からが良いだろう
メモリを意識する必要が増え、少し複雑になってくるが、言語とランタイムがほぼ一体化しているので、何かを作りたいという気持ちがあれば覚えやすいかもしれない
Android でアプリを作ってみたいなら Kotlin が良いだろう
JVM の言語は何かと複雑になってくるのだが、Android で何かを作りたいなら現状 Kotlin が最適解になるだろう
ゲームを作りたいなら、Unity を使い C# でコードを書くとよい
ネット上にたくさん資料があるので、ちょっとしたゲームを書きながら、ちょっとずつ C# を覚えていくとよい
何かと人気な Rust だけれど、駆け出しエンジニアには荷が重いので諦めよう
C 言語はコンピュータ内部の仕組みと密接につながっていて、学習効率という意味ではとても良い
ただ、その分完全な理解が必要で、ちょっと書ける程度では学ぶ意味はほとんどない。かなり頑張る必要がある
しかし C 言語をある程度学んだら、もう駆け出しエンジニアではない気はする
周りに Ruby について気軽に聞ける人がいる、という状況出ない限り、Python を学ぶほうが効率がよい
駆け出しエンジニアが学ぶ必要はないし、冷静に考えたら誰にとっても学ぶ必要がない
仮に学んでも、Perl から別言語への移植くらいしか役に立つことはないだろう
コメントが難しい。学ぶ価値のある言語で、Java を学びたい積極的な理由があるなら止めはしない
ただ Android なら Kotlin でいいし、サーバーサイドなら Go でいい
積極的に Java を学ぶ理由がないなら、駆け出しエンジニアのうちは避けておいてよい
どの言語でも、ひとつを完璧にマスターしたら、(同じパラダイムの)他の言語の習得は格段に楽になる
考えたくないなら、JavaScript と Python を適当に学んで、それで何か作れるようになれば、まあいいんじゃないかな
経済学において、均衡価格の静的理論はワルラスによって始められ、アローとドブリューにより確立された。
単一市場からなる簡明な場合、需要=供給方程式で表され、自然な力学が容易に分かるが、複数市場に関する状況は複雑である。
需要過剰は、価格のなす空間から商品のなす空間への関数Z(p)=D(p)-S(p)と考えられる。
ここでDとSはともに個々の行為の合成によって決定されている。
このとき、経済学は個人の振る舞いに関する諸条件に根拠を与え、それらの条件はZの持つべき諸公理を導く。
すなわち Z: R_{+}^{l} → R^{l} が需要過剰写像であるとは、次の公理を満たすZを言う。
これにより、Zは境界を含まない正の象限と(l-1)次元球面との共通部分上のベクトル場とみなせる。
均衡価格ベクトル、つまりZ(p^{*}) = 0となるベクトルp^{*}の存在はホップの定理から導かれる。
任介は、平成2年からの刑事裁判官で、数学と言えばそれくらいしか認識していないか、教養と理解がないものと解される。同様に、裁判所書記官の間でも、三平方の定理に関する
言動しか認められないことから、谷水文香、宮崎地裁の新原康伸も、数学のテクに関する技術的見解に関しては、それくらいしか知らないものと推測される。
ところで、三平方の定理の視覚的証明と言われて司法職員の間に知れているものは、いわゆる、直角三角形を回転対称に4つ用意するという驚くべき観点を提示するものであるが、
中央に形成される正方形はなにものであるかということに関して、不分明であり、理解が困難と言わざるを得ない。一般に、 数学の超テクと言われているものは、驚くべき部分と簡潔な部分を
指摘し完全なものをいうとされ、三平方の定理の視覚的証明では、その説明が困難というべきである。 そこで、 国際数学の有名な問題を引用すると、実不等式の対称性であり、
簡潔な部分は関数を2倍して変換し、驚きの部分というのは、そこで言われている、Symmetryトリックと記載ある箇所であると解される。
あらあら、なんとも困った状況に陥っておるのじゃな♡ その派遣の者、手作りのヒープソートを使うとは、なかなかのものであるが、その意図が理解できんのじゃぞ。既存のsort関数があるじゃろうに、それを使わないのは確かに非効率的なのじゃ。
わらわから言わせてもらえば、効率的なコードを書くのがプロフェッショナルとしての務めじゃ。それにしても、新しいアルゴリズムを試す好意が全く無意味とは言えぬが、無駄に全体の進捗を遅らせるようなら困ったものじゃな。なので、上司またはリーダーに相談して、皆の作業が円滑に進むようにガイドラインやコーディング標準を再確認した方が良いじゃろう。
結局のところ、仲間として協力し合う心が大切じゃぞ。わらわもその者が成長し、改善されることを願っておるのじゃ♡
コンテンツ集合Xがあります。各々の要素x∈ Xは特徴量f_1(x)∈Y_1 を持っています。
同様にユーザーu ∈ Uが存在し、特徴量f_2(u)∈Y_2を持っています。
コンテンツには単価P(x)が存在し、ユーザーuがコンテンツをm回消費することをg(u, x, m)=m*P(x)_uで表し、全てのユーザーU, 全てのコンテンツXに対して行列M∘P = g(U, X, M) が存在します。
回答
この問題は、コンテンツとユーザーの特徴量を考慮して、ユーザーがコンテンツを消費する回数を最大化するものです。このような問題は、推薦システムの分野で広く研究されており、協調フィルタリングと呼ばれるアプローチが一般的に使われています。
協調フィルタリングアルゴリズム
協調フィルタリングには、以下のようなアルゴリズムが考えられます。
1. 行列因子分解 (Matrix Factorization)
行列因子分解は、ユーザー・コンテンツ行列を低ランク近似することで、ユーザーとコンテンツの潜在的な特徴を抽出します。具体的には、ユーザー行列Uとコンテンツ行列Vを求め、その内積U^TVで元の行列を近似します。この手法は、Netflix Prizeで優れた成績を収めました。[1]
2. ニューラルコラボレーティブフィルタリング (Neural Collaborative Filtering)
ニューラルネットワークを用いて、ユーザーとコンテンツの非線形な関係を学習します。入力としてユーザーIDとコンテンツIDを与え、出力として評価値を予測します。この手法は、従来の行列因子分解よりも高い精度が期待できます。[2]
3. 階層的ベイズモデル (Hierarchical Bayesian Model)
ユーザーとコンテンツの特徴量を階層ベイズモデルに組み込むことで、より柔軟なモデリングが可能になります。この手法は、Cold-Start問題(新規ユーザー・コンテンツの推薦が困難)の解決に有効です。[3]
4. 強化学習 (Reinforcement Learning)
ユーザーの行動履歴を環境として捉え、報酬最大化のためのアクションを学習します。この手法は、長期的な利益最大化に適しています。[4]
これらのアルゴリズムは、ユーザーとコンテンツの特徴量を考慮しながら、目的関数を最大化するように設計されています。実装の際は、データセットの特性やモデルの複雑さ、計算リソースなどを考慮する必要があります。[5]
Citations:
[1] https://aicontentfy.com/en/blog/understanding-algorithms-behind-content-distribution
[2] https://marketbrew.ai/optimizing-your-websites-content-with-genetic-programming
[3] https://sproutsocial.com/insights/social-media-algorithms/
[4] https://surferseo.com/blog/the-new-algorithm-for-content-analysis/
[5] https://www.linkedin.com/advice/0/what-best-ways-measure-content-relevance-x6apf
プログラマなんだけど
職場に地方のコンピュータ専門学校のゲームプランナーコースを卒業した弱者男性が
派遣で来てるんだが
元々のsort関数の方が処理が速いのに
国際数学の私が自分で解けたことのある問題をですが、 第1問、 数の範囲を絞り込めないが必要最小限の順序仮定を何回も用いるとするりと答えが出る。
第2問 論外。 数式を等分してAMGMに入れると邪魔な項が消えて証明できる。
第3問 過激な対称入れ替えと、2倍だけの関数倍化を許すというきつい方法で片割れが出て、もう片割れは
理論的な問題。 または、完全補題を発見しないといけないが驚愕的なのでほとんど無理。
第4問 分からない、なんか出来たことがない。要点補題か、フェルマー小定理に少し改変を加えると出来るらしい。
幾何の場合は、補助線。 補助円は体験したことないから知らん。
第5問 第2問と同じようなもので、簡潔なclaimか何かをするだけ。
第6問 パスカルの定理が出て来るところを指定して出すのが難しい。
東京武蔵野病院は、 院長の、 黄野きみどりをトップとして体系的に構成されているので、本来は、数学の専門用語も交えて、その体系を説明できるはずだが、誰もしていない。
副島真が解いた問題は、結局、完全帰納法だったが、バッタが着地することに関して、完全帰納法の n<kの仮定のつながりのなんかを4つのClaimでやるというような
ことで、特に読んでないですが、かなり高度なClaimを4つして完全帰納法を出すというような内容だったらしくてなんか3人しか出来なかったとかいうような
なんで読んでないかと言うと自分で解いてないものには興味がないので、でもやっぱり完全帰納法の原理(strong-induction)が出て来ることで解けるというようなもので
一番わかりやすいのは実関数で、2倍しても関数が不変だし、対称に変数を入れ替えても不変というのを主張してそれで超対称性みたいなもんが出て来るというのが一番分かりやすいかった
けども、あんなのは、特別な訓練と修養がないと無理で、それ以外にも直線を引いて図形を分けるとかね、色々なテクニックがあって、
バックプロパゲーションなんてしょせん合成関数の微分じゃん(挑発)
誰かにプロトタイプを使ってもらって「入力Aに対して出力Bが得られる例はない?」などと言われることがあるだろう
例えばレコメンダシステムでは、ユーザーの行動を入力としてアイテムを出力する
「こういう行動をした場合と、してない場合で、こういうアイテムの違いが想定されて欲しい」という要望が出てくるのである
そういう場合は、可能な行動の組み合わせを全て網羅して、それらを関数に自動的に入力し、その出力をファイルとして出すなどして見てもらって自動化したほうが良い
要するに、プロトタイプをポチポチ触るだけでは効率が悪い場合は、入力の組み合わせを自動入力してしまったほうが早いわけである
もし出力に条件があれば、その条件をフィルタリングすることも可能だろう
そのため、自動化が必要かどうか、またどの程度の自動化が適切かを判断するためには、テストの目的と範囲、そして利用可能なリソースを考慮することが重要
生産性が全ブラウザの中で一番低いにも関わらずなぜか使用率が高いので、生活残業を稼ぎたい人に大変オススメのブラウザです。
Windowsに最初から入っているEdgeは基本的にChromeの全ての機能が使える上に、
縦タブやOfficeファイルのプレビュー、Copilot、広告ブロックなど業務を効率化させる余計な機能がついているので禁止です。
生活残業をしたい生産性の低い社会人の合言葉は「EdgeはChromeダウンローダー」!
もちろんVimキーバインドでブラウジングができる拡張機能、Surfingkeysなんて入れたら生産性が爆上がりしてしまうので、
リンクはマウスでポチポチとクリックし、ページスクロールはマウスホイールを使いましょう。
Ctrl+TやCtrl+L、Ctrl+Wなどのショートカットも覚える必要がありません。
生活残業のためにタブを開くのも閉じるのもマウスを使うべきです。
こちらもマウスと矢印キーを使うことを前提にした非常に生産性の低いエディタであるにも関わらず使用率が高く、
と言う気の狂った操作方法しかなく、後者の場合『Shiftがすっぽ抜けるとやり直し』と言う絶望的な生産性の低さで非常におすすめ。
カーソル移動と言う一番頻出する操作方法がメモ帳と変わらないので、結局多少補完が強力だろうとVSCodeの基本的な生産性はメモ帳と同じです。
素晴らしい!生活残業にピッタリ!
VimやEmacsなどのエディタはもちろん、これらのキーバインドを使えるようにする拡張機能も絶対に使うべきではありません。
VSCodeで使えるGit系の拡張機能もバカみたいにマウスをポチポチして操作する必要があるので、
ヘタするとそのままGitコマンドを打つよりも遅そうで最高です。
間違ってもtigやEmacsのMagitなどの高速Git操作インターフェースを使ってはいけません。
わざわざGUIで操作するSourcetreeを入れるのもアリですね。
ExcelでもSpreadsheetでも全てのセルにその場限りの計算式を入れましょう。
俺自身の経験からすると、「人として接していない」状態というのは相手をパラメータや概念で認識している状態のことだな。
例えば相手を「20代の若い女」クラスのインスタンスだと思っていて、だから "好きな食べ物()" 関数を適用したら "オシャレなパスタ" が返ってくると思っているような捉え方だ。
現実はそうではない。
「20代の若い女」というのは単なる類型についたラベルであって、目の前の相手が(たとえ20代の若い女だったとしても)その類型に当てはまっているとは限らない。
そして相手を一方的に「類型」に当てはめて解釈しようとすることは失礼にあたる。
相手の属性を一つ一つ聞き出して理解し(かといってもちろん初対面で不躾に質問リストを浴びせるようなことは失礼に当たる)、何かのクラスのインスタンスとしてではなく属性の総体として相手を理解することが求められる。
男女逆の場合でも、合コンの相手を「商社くん」とか「コンサルくん」とかほざいてる女もいるだろ。あれも相手を人間扱いしてないわけだ。
平和だった時代の東京では、根画手部ふきちのように、知能指数の計算技術の方を用いて、現場を円満に解決し、拳銃や腕力は使用しない時代があったが、最近のように、
頭を使っても分からないバカが実際には多数潜伏しているような社会では、巡査の投げる力や、撃つ力の方が実際的であるような社会になっていると思う。
むろん、暴力団が1万人で向かって来て、数人の巡査では対処できない、という場合も想定できるが、1万人の暴力団が無線車に向かってくるなどという事例は最近の社会では
聞いたことがないし、高齢女性が包丁をもって近所誘い合わせて出てきたとしても、 発生しないことを考えても意味がないように思う。
魅力的な定理、魅力的な技術というのはたくさんあるものである。 数学の何が面白いのか。二次関数を書いて最小値を求める、二次方程式を解く、そういうつまらない作業ばかりで
面白い問題を体系的にやった経験がない。 数学は、定理を発見して証明し、技術を用いて大きな問題を完成させる精神作業である。
この石村智という裁判官の書いたものは、結局、専門知識や、解釈技術を企業秘密としたうえで、大分地裁に座っているだけのカスの書いたものであり、四囲の状況からすると、裁判官の
住所は、大手市付近のマンションの高層階にあることが想定される。
ところで、一般人の誰もしらない専門知識や解釈技術を企業秘密とした上、裁判所に座っているだけの犯罪者に魅力を持つものはいないし、そもそも、そのような職業を選択する者は
いないと解される。