人類の祖先は、しばしば毛むくじゃらでヤリを持った姿で描かれることがあります。この「ヤリ」は獲物に対して投げつけて使っていたのだろうと一般的に考えられていますが、少し違う方法で使用していた可能性が指摘されました。
人類の祖先はヤリを投げるのではなく地面に突き刺して突進する動物を待ち伏せして倒していたのかもしれないという研究結果 - GIGAZINE
カリフォルニア大学バークレー校の考古学者によると、今から1万3000年前、人類の祖先は突進してくる動物に突き刺さるような角度でヤリを地面に固定していたのではないかと考えられるとのこと。このように使えば、人間の手でヤリを投げるよりもはるかに強力な一撃を相手に与えることが可能で、獲物を効率的に仕留めることができます。
人類の祖先はヤリを投げるのではなく地面に突き刺して突進する動物を待ち伏せして倒していたのかもしれないという研究結果 - GIGAZINE
論文共著者のジュン・ウエノ・スンセリ氏は「ヤリを投げて使うという描写は、物語としては面白いものですが、氷河期の生活の現実を考慮していない可能性が高いと考えられます。人間の腕で発生させることのできるエネルギーは、突進する動物が発生させるエネルギーとは比べものになりません。これらの槍は、使用者を守るために設計されたものなのです」と語りました。
人類の祖先はヤリを投げるのではなく地面に突き刺して突進する動物を待ち伏せして倒していたのかもしれないという研究結果 - GIGAZINE
今後数カ月のうちに、バイラム氏らはマンモスのレプリカのようなものを作って理論を検証する予定です。
人類の祖先はヤリを投げるのではなく地面に突き刺して突進する動物を待ち伏せして倒していたのかもしれないという研究結果 - GIGAZINE
⇧「狩猟」が達成されるのに、どれだけの「外力」が必要かという研究がされてなかったのは意外ですな。
とりあえず、
Within mechanics there are two sub-fields of study: statics, which is the study of systems that are in a state of constant motion either at rest (with no motion) or moving with a constant velocity;
and dynamics, which is the study of systems in motion in which acceleration is present, which may involve kinematics (the study of the motion of bodies with respect to time, displacement, velocity, and speed of movement either in a straight line or in a rotary direction) and kinetics (the study of the forces associated with motion, including forces causing motion and forces resulting from motion).
しかし、ヒトがどういう意識で運動をしているかどうかは、さすがに運動学や運動力学では分かりません。
運動学と運動力学の違い(キネマティクスとキネティクス) - 陸上競技の理論と実践~Sprint & Conditioning~
このように、運動学や運動力学で分かるのは、客観的な動作や力発揮であって、「感覚・意識」などの主観に言及することは非常に難しいのです。
運動学と運動力学の違い(キネマティクスとキネティクス) - 陸上競技の理論と実践~Sprint & Conditioning~
⇧「やり投げ」でどれぐらいの「外力」を加えることが可能なのかシュミレーションできないのかは気になりますな。
『今から1万3000年前、人類の祖先は突進してくる動物に突き刺さるような角度でヤリを地面に固定していたのではないか』
説については、
狩猟の方法
- 方法の一覧
⇧「罠猟」を想定しているってことなんですかね?
突進してくる動物を人間が待ち構えている場合は、「チキンレース」的な様相を呈していることになり、「狩猟」のリスクが非常に高くなると言わざるを得ないですからな。
それにしても、
- 「1万3000年前」の人類
- 現代の人類
で身体能力的には、どれぐらいの違いがあるのか気になりますな。
ちなみに、
この研究成果が社会に与える影響
中脳皮質系が意図しない力の強さと関連するという発見は、意欲などの心の有り様が意図せず強い力を発揮させる「火事場の馬鹿力」の神経経路を明らかにするものです。本研究で得られた知見は、運動パフォーマンス向上を目的とするスポーツ選手の競技力向上を目的としたメンタルトレーニングの提案につながります。また、活動したいという意欲が低下してしまう気分障害や気分障害と運動障害を併発するパーキンソン病での症状理解や新たな治療戦略の開発につながることが期待できます。
⇧「脳」が「身体操作」に関して「リミッター」的なものを設けているとした仮説は、正しそうですと。
「リミッター」的なものが全て解除された場合に、どれぐらいの力を発揮できるのか気になりますな。
「1万3000年前」に高度な催眠術的なもの(「脳」の「身体操作」の「リミッター」的なものを解除するような)があって、現代の人類が想定していないような人体の力の使い方が為されていたとしたら、「やり投げ」で「狩猟」が実現されていた可能性も出てくるのかしらね。
人体の「脳」については、未だ謎だらけであるということですかね。
プログラミング言語における三項演算子
そも、「三項演算子」とは?
Wikipediaによると、
⇧ という説明となっており、元々は数学が発祥の言葉ということになるんかね?
Wikipediaの内容を読み進めると、
⇧ プログラミング言語においては、「条件演算子」が「三項演算子」の実例の1つであるような書きっぷりになっていますと。
条件演算子(じょうけんえんざんし、英: conditional operator)は、プログラミング言語の演算子で、条件文と同様な意味があるが、文ではなく値を持つ式になる。評価されると、条件式の値により異なる式が評価され、異なる値になる。
⇧ とありますと。
Pythonの三項演算子の構造が直感的に分かり辛い
Javaに触れてることが多かったもので、知らなかったのですが、
⇧ 上記サイト様の記事で初めて知ったのですが、「三項演算子」の構造はプログラミング言語によって異なる模様。(Wikipediaの「条件演算子」の説明に辿り着く前に、こちらのサイト様の記事を確認したこともあり)
⇧ 上記サイト様の説明にあるような構造になっていますと。
Pythonの公式のドキュメントによると、
⇧ 非常に分かり辛い...
x if C else y
という式は最初に x ではなく条件 C を評価します。 C が true の場合 x が評価され値が返されます。 それ以外の場合には y が評価され返されます。
条件演算に関してより詳しくは PEP 308 を参照してください。
⇧ 説明を読んで、漸く処理の挙動が分かるのだけど、何の説明も無く、初見でPythonの「三項演算子」の挙動を理解できる気がしない...
これは、Javaの「三項演算子」の構造に慣れている身からすると、かなり違和感があるのですが、
[condition.closed question] ? [Answer.Yes] : [Answer.No]
[Answer.Yes] if [condition.closed question] else [Answer.No]
⇧ という構造の違いになっており、個人的には、Javaに慣れていることもあり、Javaの「三項演算子」の構造の方が分かり易く感じる。
ただ、何の予備知識も無い人が、何の説明も無く「三項演算子」の構造を見比べた場合、直感的に分かり易いと感じるのは、Javaの「三項演算子」の構造の方な気がするんですけどね。(個人の見解です)
入れ子になった複雑な「三項演算子」の場合だと、どちらが分かり易くなるのか分かりませんが。
⇧ 上記サイト様のような感じになりますと。
String value = n % 15 ? "FizzBuzz" : n % 5 ? "Buzz" : n % 3 ? "Fizz" : String.valueOf(n);
f = 'FizzBuzz' if n % 15 == 0 else 'Buzz' if n % 5 == 0 else 'Fizz' if n % 3 == 0 else str(n)
⇧ 上記のような単純な入れ子の構造であれば、「三項演算子」で実装されていたとしても何となく読解できそうではある。
まぁ、深い入れ子の「三項演算子」が必要になる場合は、「三項演算子」を使わずに、普通のif文の入れ子とかで対応したいかなぁ。
改めて、やはり、Pythonの「三項演算子」の構造は、自分的にはしっくりこないかな。
Wikipediaの「条件演算子」の説明によると、Pythonの「三項演算子」については、
Pythonにおいては、Cの条件演算子と同じ機能は、構文に関する論争のため長い間実装されなかったが(論理演算子を使ったハックでなんとか似たことができるというのもあった)、PEP 308として承認され、2006年9月の2.5 releaseに追加された。
⇧「PEP 308」で定義されているらしい。
確認してみたところ、
Adding a conditional expression
On 9/29/2005, Guido decided to add conditional expressions in the form of “X if C else Y”.
The motivating use case was the prevalence of error-prone attempts to achieve the same effect using “and” and “or”.
⇧ 案はいろいろと出ており、「Javaの三項演算子の構造(C言語が源流)」と同様の案も出ていたみたいね。
と言うか、最終的に採用された「三項演算子」の構造が、グループの案のものでないのだが...
Pythonの「三項演算子」の構造が、何故、今の形になったのかは、結局のところ、よく分かりませんが、初見だと「三項演算子」として読み取れない気がしますな...
所謂「初見殺し」と言えると思うのですが、Pythonは他にも説明してもらわないとよく分からない挙動をする仕様があるのが厄介ですな...
Pythonの実装は「暗黙知」化されやすいような気がしますな...
実装は、全部、AIにお任せしてしまいたいお気持ちです...
毎度モヤモヤ感が半端ない…
今回はこのへんで。