「ひとつ上の思考力」を読んで
Amazon Kindle Unlimitedで、あなたのおすすめに出てきた「ひとつ上の思考力」を読んでみた。
ひとつ上の思考力。。。
私のような凡人が本題から想像できるのは、
- 木を見て森を見ずはあかんで
- 自分が平社員なら、2つ上の視座、つまり部長になったつもりで考える
みたいな。 この予想を超えて見よ!!(鷹の目のミホーク)
ざっくりまとめると。。。
- PDCAサイクルをきっちり回しましょう。(Plan, Doのやりっぱなしはあかんで)
- 仕事の精度と生産性を高めるため、物事を抽象化して考え、その他の事象に転用せよ
PDCAをダブルループと読んでいたり、抽象化思考や仮説思考を何か別の言葉で表していたりと、
全体を通して、ビビッとくるものはなく、テンション高くなるようなこともなく終わりました。。。
ただ、この本で心に残ったフレーズがあり、それは下記
- 人と課題(問題)を分けて考える。
- 「期待するのではなく、応援する」というスタンスでいる。
子育てに大切な言葉だな〜...としみじみ感じて、本をそっと閉じました。
C++ 最大値と最小値を同時に求める中級魔法 "std::minmax_element()"
最大値と最小値を同時に求める関数である
ドラクエでいうと、"std::minmax_element()"ってメラミくらいの威力でしょうか。
さて、こちらはCodewarにて問題を解く過程で使用しました。
メモ:
- vector限定ではなく、イテレータであればOK。
- minmaxを求める時の比較関数の指定も可能。
- 戻り値の覚え方: min, maxの順。関数名"minmax_XXX"の記載順そのままと覚えるがよろし。
詳しくは、Google先生で検索する or ↓公式ドキュメントを参照するがよろし。
Example Code:
#include <algorithm> #include <iostream> int main() { const auto v = { 3, 9, 1, 4, 2, 5, 9 }; const auto [min, max] = std::minmax_element(begin(v), end(v)); std::cout << "min = " << *min << ", max = " << *max << '\n'; }
Output:
min = 1, max = 9
ホントは、std::min_element()とstd::max_element()を使って解きました、はい。。
他の人がこの関数を使って、スマートに解いていたので紹介しているだけです、はい。。
パフォーマンス(計算量とかメモリ使用量)については、
Google先生で、そのことに言及している記事があったが、めんどくさくて読んでない✕
今のところパフォーマンスはどうでもいいので、めんどくさくなってしょうがないよ、自分。
セルフコンパッションが高まってきたな、よし。
rect, polar, degrees, radians...まとめて覚えよ!!!
Pythonモジュールの話です。
cmath.rect
公式ドキュメントの記載
cmath.rect(r, phi)¶ 極座標 r, phi を持つ複素数 x を返します。値は r * (math.cos(phi) + math.sin(phi)*1j) に等しいです。
(例)
>>> cmath.rect(2**.5, math.pi/4) # phiを孤度法で指定 (1.0000000000000002+1j) >>> cmath.rect(2**.5, math.radians(45)) #phiを度数法の45°から孤度法のラジアンに変換して指定 (1.0000000000000002+1j)
[注意] phiは、ラジアンで指定する必要があるので注意。 つまり、60°みたいな度数法じゃくて、π/4みたいな孤度法や。 後述のmath.radiansとの合わせ技で使うシーンがあるかも。
cmath.polar
[公式ドキュメント]https://docs.python.org/ja/3/library/cmath.html?highlight=polar#cmath.polar)の記載
cmath.polar(x)¶
x の極座標表現を返します。x の半径 r と x の位相 phi の組 (r, phi) を返します。polar(x) は (abs(x), phase(x)) に等しいです。
(例)
>>> cmath.polar(1+1j) (1.4142135623730951, 0.7853981633974483)
直交座標から、距離と角度をパッと出すのに便利かも。
math.degrees
公式ドキュメントの記載
math.degrees(x)¶ 角 x をラジアンから度に変換します。
(例)
>>> math.degrees(math.pi) 180.0
ま、これはそのままだよね。
ラジアン-->度? 度-->ラジアン?どっちだっけ、あ〜〜〜〜!となりそうなので
モジュール名のdegreesは、変換後単位と覚えるとよろし。
Google先生に聞いたり、簡単に試すとすぐわかるけどね。
math.redians
公式ドキュメントの記載
math.radians(x)¶ ラジアンから度に変換します。
(例)
>>> math.radians(180) 3.141592653589793 # 180°はπなので、3.14XXXとなる。
問題
これらモジュールをマスターすると下記問題が簡単に解けるようになるのである。
Input: func(OA, AB, BC, alpha, beta, gamma) Output: OCの長さ、OCの角度(OC辺<-->X軸マイナス方向)
Python math.floorとmath.ceilって何?
- 少数点以下をどう扱うかのAPI。 切り捨て or 切り上げして、int型を返す。
- floor : 小数点以下は切り捨て御免。
- ceil : 少数点以下を切り上げる。
>>> import math >>> math.floor(3.14) 3 >>> math.ceil(3.14) 4 >>>
floorとceil、、、なるほど、ネーミングセンスよかですね。
Python f-string内で条件分岐したく候
f-string内で条件分岐する場合、下記のように書くとよろし。
# glassesが1より大きい場合、複数形にするという f"{glasses} glass{'es' if glasses > 1 else ''} of water." # glasses > 1 2 glasses of water. # glasses <= 1 1 glass of water.
pointは、""で囲ったら、内部では''を使う。逆もしかり。
codewarsのランキングの伸び悩み中....
”ACTION! トヨタの現場の「やりきる力」”の本を読んで、
kindle unlimitedに入っているので、今週何読もうかと、じゃがりこ放り込みながら本を検索。
Action! トヨタの現場の「やりきる力」
がドン!!とオススメに表示され、レビューも高評価だったので、
読むことに。。。
ワクワクしながら、↓↓期待して読んでみました。
しかし、内容はどこかでよく耳にするものに、ご自身の経験として"トヨタでは"をつけてるようなもの。。。
- 実行可能な粒度にブレークダウンして、物事を実行に移す
- 適度な負荷をかけて、思考して、Xxする
- ゼロベース思考で考える。
- 視座を高く持つ
私にはちょっと期待はずれかな。。。
んーと、入社1-2年目だと新鮮かもしれない
それ以上だと、忘れかけていたものを思い出させてくれるのに有益かもしれない
いや、違う!
当たり前のことを当たり前に息を吸うようにやり、しかも高レベルでやっている、これこそがトヨタの真髄である。
自分も出来てなかったこと書いてあったしね。
著者さん、サンキューです♪