数学って面白い!に勝手にコメントする
過去のブログ記事を読んでいたら
このような記事見つけました。
第1問
3つ目の変数を使わずに2つの変数を置き換えてください。
第1問につては別解を考えてみました。
元の記事では差を使って計算しているので、自分はPythonでとんちを考えました。
a=str(a)
bestr(b)#aとbを文字列に変換
a=+" "+b#aにaとc間に半角スペースの文字列を入れます。
b, a = input(a).split()#bにaの半角スペースまでの部分、aに後ろの部分を代入
a=int(a)
b=int(b)#一応int型らしいのでintに変換
変数2つと指定がありますが型もメモリ制限も指定されていないので文字列に変換して、2変数分のデータを1変数にまとめてしまうやり方です。
補足
3つ目の変数を使わないで2つの変数を置き換えろという問題なのですが、名付けが2つというところで型をもメモリも指定されていないのでとんち的な回答です。文字列で指定されていた変数を整数値の変数に変換したりなんていうことをC言語でやったらコンパイルエラーが飛んできますけれどPythonだからできるわけです。
第2問
足し算しか使わずに整数の引き算、掛け算、割り算の関数を作ってください。
第2問については、コンピュータでの計算は基本的に2進数でビットの反転とビットシフト演算しか行えないので加算と減算はあまり区別されないという話をしたいなと思います。
コンピュータでの計算は基本的に2進数でビットの反転とビットシフト演算しか行えないというのはコンピュータアーキテクチャの話なのですっ飛ばして計算方法を紹介します。
以下のサイトがくわかりやすく解説しているので参照してください。
とこのようにコンピュータ内部では足し算だけで四則演算が完結しているのでコンパイル後のアセンブラ言語では足し算のだけになります。
第3問
車の通りが少ない道は車が30分内に通過する確率は0.95確率です。同じ道を車で10分以内に通過する確率は?
これは流石に別解は作れなさそうです。
最近ブログに書く話があまりなくて困っていましたけど、数学は好きなので数学の記事も今後書いていけたらいいなと思います。
次回の記事