2^91-1と2^65-1の最大公約数を求めるにはどうすればいいのですか?
これほど大きな値だと共通の素数で割ることもユークリッドの互除法も使えそうにありません。
ちなみにコンピュータに解いてもらったら
GCD(2^91-1,2^65-1)=8191
でした。

A 回答 (5件)

No.3の答えに対する考察です。


まず2^n-1=Σ_(0<=i<=n-1)2^i--(*)という等式があります。
等比数列の和の式です。
これを利用すると例えば
2^6-1=(2^5)+(2^4)+(2^3)+(2^2)+(2^1)+(2^0)
となります。
これを2個づつまとめると
{(2^5)+(2^4)} + {(2^3)+(2^2)} + {(2^1)+(2^0)}=
(2^4)*{(2^1)+(2^0)}+(2^2)*{(2^1)+(2^0)}+{(2^1)+(2^0)}=
{(2^1)+(2^0)}{(2^4)+(2^2)+(2^0)}となります。
ここでまた(*)を利用すると{(2^1)+(2^0)}=2^2-1となります。
よって2^6-1は2^2-1で割ることができます。

同様に3個づつまとめると
{(2^5)+(2^4)+(2^3)} + {(2^2)+(2^1)+(2^0)}=
(2^3)*{(2^2)+(2^1)+(2^0)}+{(2^2)+(2^1)+(2^0)}=
{(2^2)+(2^1)+(2^0)}{(2^3)+1}
ここで(*)を利用すると{(2^2)+(2^1)+(2^0)}=2^3-1となります。
よって2^6-1は2^3-1で割ることができます。

どうでしょうか、すこしはからくりが分かったでしょうか。
どうやら僕もノウタリンなようであんまりちゃんと一般的な式にできません。
ご勘弁を。
    • good
    • 0
この回答へのお礼

なるほど、そういうことだったんですね。
よくわかりました。ありがとうございます。

お礼日時:2001/09/25 16:17

考えすぎ?


 単純にユークリッドの互除法を用いれば良いのでは?
 ユークリッドの互除法は
<p,q> → p>qなら<p-q,q>、p<qなら<p,q-p>, p=qなら終わり。
という変換を繰り返す。
 これは適当な正の自然数nについて
<p,q> → p>nqなら<p-nq,q>、np<qなら<p,q-np>, p=qなら終わり。
としても全く同じ事。ですから、

<(2^91-1),(2^65-1)>→
<(2^91-1)-(2^26)(2^65-1),(2^65-1)> = <(2^26-1),(2^65-1)>→
<(2^26-1),(2^65-1)-(2^39)(2^26-1)> = <(2^26-1),(2^39-1)>→
<(2^26-1),(2^39-1)-(2^13)(2^26-1)> = <(2^26-1),(2^13-1)>→
<(2^26-1)-(2^13)(2^13-1),(2^13-1)> = <(2^13-1),(2^13-1)>→ 終わり。

"="の左辺のカッコはずして展開すれば右辺になります。
    • good
    • 0
この回答へのお礼

こんな方法があったんですか・・・知りませんでした。
いい勉強になりました。ありがとうございます。

お礼日時:2001/09/25 16:19

2^1-1=1


2^2-1=3
2^3-1=7
2^4-1=15
2^5-1=31
2^6-1=63
2^7-1=127
2^8-1=255
2^9-1=511
2^10-1=1023

と続けていくとわかると思いますが
例えば2^6-1の63の約数は3,7,21の3種類で
その中に2^2-1の3と2^3-1の7が入っています。
これは6の約数が2,3だからです。
もちろん2^10-1の1023の約数の中には
2^5-1の31が入っています。
って
私ノウタリンなので式でできません(笑)
ご勘弁を
    • good
    • 0

#1へのお礼に対する回答です。


一般的に成り立つことではないと思いますが、このケースではユークリッドの
互助法が使えます。
まず、(2^13-1)が共通因数であることは明らかですから、両者をこの数で割ってみます。
(2^91-1)=(2^13-1)(2^78+2^65+2^52+2^39+2^26+2^13+1)
(2^65-1)=(2^13-1)(2^52+2^39+2^26+2^13+1)
ですから、(2^78+2^65+2^52+2^39+2^26+2^13+1)と(2^52+2^39+2^26+2^13+1)に共通の
因数が無いかどうかしらべればよいわけです。
(2^78+2^65+2^52+2^39+2^26+2^13+1)=(2^26)(2^52+2^39+2^26+2^13+1)+(2^13+1)
(2^52+2^39+2^26+2^13+1)=(2^39+2^13)(2^13+1)+1
ですから、両者は互いに素です。
つまり、(2^91-1)と(2^65-1)のGCDは(2^13-1)です。
    • good
    • 0

91と65の最大公約数は


13です

2^13-1が8191です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
では、どうして
GCD(2^91-1,2^65-1)=2^GCD(91,65)-1
が成り立つと言えるのでしょうか?

お礼日時:2001/09/20 17:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC言語はC言語でできている?

C言語はC言語でできている?

C言語はC言語でできていると耳にしたことがあります。

一体どういうことですか?

詳しく教えて下さい。

Aベストアンサー

歴史的な経緯を考えれば解ると思います。

当初は機械語でプログラミングをしていました。
それがアセンブラに変わります。
アセンブラでコンパイラが作成され、高級言語が作られていきます。
アセンブラまたは、高級言語の1つを使って、C言語用のコンパイラが作成されたとします。
今度は、そのC言語用のコンパイラを使用して開発ができるわけです。
ですので、そのC言語用のコンパイラを使用して、
C言語用の別のコンパイラを作成することも可能になります。

おそらく質問者さんの聞かれていることはこのことだと思います。

他の例では、MSは、VisualStudioで、次のバージョンのVisulaStudioを開発しています。
ややこしいですね。><

Q【数学】ユークリッドの互除法のごじょほうってどういう意味ですか? ユークリッドの互除法を考えたユーク

【数学】ユークリッドの互除法のごじょほうってどういう意味ですか?

ユークリッドの互除法を考えたユークリッドってユークリッド幾何の人と同じ人物ですか?別人ですか?

ユークリッドってどんな人だったのか教えてください。偉伝の伝説が聞きたいです。

あとユークリッド幾何とユークリッドの総除法ってどんなことなのか教えてください。簡単に。

Aベストアンサー

「互除法」は、文字通りの意味です。「互」は、「お互いに」の意味、「除」は、「除算をする」の意味、「法」は、「方法」の意味です。
それをまとめて、「(2つの数について)お互いに割り算をしていく方法」という意味になります。

ユークリッド幾何学のユークリッドと同じ人です。ユークリッドの「(幾何学)原論」」の中に、幾何学も、数論(互除法も書かれている)も書かれている(そうです。私は読んだことがないので、、、)。

ユークリッド幾何学は、われわれが体験する幾何学的な事実を厳密な形で整理したものです。
ユークリッド幾何学だけを説明するより、非ユークリッド幾何学と一緒にして違いを説明した方が分かりやすいと思いますので、3つまとめて説明します。
これらの幾何学は、平行線の公理が成立するかどうかによって特徴付けられます。まず、平行線の公理は、次のように述べられます。

[公理] 1本の直線と、その直線上にない1点に対して、その点を通るその直線に平行な直線がただ1本だけ存在する。

この公理が成立する幾何学が、ユークリッド幾何学です。

この公理が成立しない幾何学が、非ユークリッド幾何学です。公理の否定の形によって、2つの幾何学が考えられます。
公理の前半部分は同じですので、省略して後半だけ書きます。
1つ目は、
  .....、平行な直線は存在しない。
2つ目は、
  ......、平行な直線が2本(以上)存在する。
となります。

ユークリッドの互除法(もともとの記述は、互減法だそうですが)は、2つの自然数 m, n の最大公約数を求める方法です。以下のように表されます。

 a: 2つの数の大きい方を小さいほうで割った余り r を求める。
 b:  r が 0 ならば、割った数が、最大公約数として終了する。
 c: そうでなければ、割った数を大きい方の数とし、余りを小さい    方の数として、a に戻る。
(互減法の場合は、a のところの割り算の代わりに、引けなくなるまで引き算を繰り返す、に変わります。結果として、余りを求めていることになります。)

ユークリッドの伝記は、自分で調べてください。

「互除法」は、文字通りの意味です。「互」は、「お互いに」の意味、「除」は、「除算をする」の意味、「法」は、「方法」の意味です。
それをまとめて、「(2つの数について)お互いに割り算をしていく方法」という意味になります。

ユークリッド幾何学のユークリッドと同じ人です。ユークリッドの「(幾何学)原論」」の中に、幾何学も、数論(互除法も書かれている)も書かれている(そうです。私は読んだことがないので、、、)。

ユークリッド幾何学は、われわれが体験する幾何学的な事実を厳密な形で整理...続きを読む

QMPLAB C18のC言語について

趣味でPICをはじめて、いままではアセンブラ言語でプログラムを書いてきました。
こんどPIC18Fに挑戦しようと思っているんですが、PIC18FはC言語で書いた
ほうがいいらしいですね。無料でMPLAB C18というC言語のコンパイラが使えるらしいですし。
C言語は勉強したことがないので、とりあえずC言語を勉強しなければならないんですが、
C言語っていろいろ種類があるんですね。C,C++,C#、あとvisual basic系のCとか。
なんだかさっぱりわかりません。

MPLAB C18のC言語にもっとも近いのはどれでしょうか。おしえてください。

Aベストアンサー

>C,C++,C#、あとvisual basic系のCとか。

だいぶ誤解があるようです。

C言語は、ISOやJISの規格で決まっている言語規格の事で単にCと略することがあります。でこれは規格の名前なので、どこの会社がつくっても良いですし、オープンソース開発されているC言語のコンパイラもあります。
なのでA社のCやらB社のCやらいろんなのがありますが機能・規格はある程度統一されています。

で他のC++,C#、あとvisual basic系のCについて説明します。

C++はC言語を大幅に拡張した言語でオブジェクト指向を取り入れた言語です。C言語よりも重いので小型マイコンではまず使えません。C18もC++の規格は取り入れられていないはずです。

C#となるとさらに重く最新の言語でマイクロソフト社提案の言語です。DelphiやJavaやC++などをベースに設計された言語でC言語とは大幅に文法が異なります。Cと言う名前が付いているのはマイクロソフト社の戦略的ネーミングです。

あとvisual basic系のCはVisualStudioのCではないでしょうか?
それとvisual basicは昔流行ったBASICの流れをくむオブジェクト指向言語ですが、これまたC言語とは文法は異なります。
それで、VisualStudioはマイクロソフトの開発環境のの名前で無料で手に入るのは、VisualBasic2010Express、VisualC#2010Express、VisualC++2010Expressです。
このうち、VisualC++2010ExpressはC言語かC++を扱うことの出来る開発環境ですので、ny36さんの目的にはかなっていると思います。

ただし、VisualC++2010ExpressとC18では使える入出力関数が違いますのでいきなりC18で始めてしまった方が混乱が無くて良いかも知れません。

「電子工作室」
http://www.picfun.com/mccframe.html

ちなみに「PIC18FはC言語で書いたほうがいいらしいですね。」と言うのは絶対ではないです。アセンブラで組んでも構いませんが私はC言語のほうが楽だと思います。
それは普通のPICにも言えるんですけどね。

>C,C++,C#、あとvisual basic系のCとか。

だいぶ誤解があるようです。

C言語は、ISOやJISの規格で決まっている言語規格の事で単にCと略することがあります。でこれは規格の名前なので、どこの会社がつくっても良いですし、オープンソース開発されているC言語のコンパイラもあります。
なのでA社のCやらB社のCやらいろんなのがありますが機能・規格はある程度統一されています。

で他のC++,C#、あとvisual basic系のCについて説明します。

C++はC言語を大幅に拡張した言語でオブジェ...続きを読む

Q【問題】楕円x^2/a^2+y^2/b^2=1の1つの焦点Fを通り,互

【問題】楕円x^2/a^2+y^2/b^2=1の1つの焦点Fを通り,互いに直交する2つの弦AB,CDを引けば,1/AB+1/CDは一定であることを示せ。

全然わかりません^^;
どなたかよろしくおねがいします('▽'*)ニパッ♪

Aベストアンサー

#3です。

ちょっと図を描いてみれば、わかることですよ。>_<
傾きが mということは、(yの変化量)/(xの変化量)= mということですよね。
すると、(yの変化量)= m* (xの変化量)ですね。
あとは、三平方の定理を使えば・・・
このことは、傾き mの直線であれば言えることで、ちょくちょく出てくる計算です。

少し複雑な計算が続きますが、もう一つだけ追加で。
・傾きを mや k、-1/kなどと表したとき、y軸に平行な直線を表すことができません。
その場合だけ、別に計算しないといけません。
・その 2直線は x= √(a^2- b^2)と x軸(y= 0)です。それぞれの弦の長さは、さほど大した計算にはならないはずです。

QC言語は全くの素人なのですが・・・

C言語は全くの素人(C言語って何?レベル)でも独学で市販のテキスト(初めてのC言語など)などを使って取得出切る物ですか?もしC言語の勉強を始める前にこれだけはしておいた方が楽にC言語の勉強に入って行ける様な勉強がありましたら是非、教えて下さい。

Aベストアンサー

#1さんと同意見です。プログラミング言語初体験でC言語はお薦めしません。

>独学で市販のテキスト(初めてのC言語など)などを使って取得出切る物ですか?

取得出来るかもしれません。が、確率が低い、と思います。
参考事例を二つほど。
まず、独学じゃなくて、大学で「強制的に習わされる」としても、非常に学生の宿題の丸投げ率が高い言語です(笑)。これは特筆に値します。結論から言うと、「学校で習わされる」としても「最初に学ばせる」にはキツい言語だ、と言う事ですね。大学側もその事実を把握してんだかしてないんだか(笑)。つまり、「プログラミングを学ぶ」目的には適してない、と言う事です(逆に言うと、「別の言語を習得していて」「C言語を学ぶ」なら可、なんですが)。
最近でも、全く知らない人からいきなりメールが来て、この宿題

課題 ex3:
http://edu.inf.shizuoka.ac.jp/lecture/2006/X121/exercise/ex3.html

を教えてくれ、とか書いてました(笑)。その学生が丸っきり勉強してないんだか、それとも静岡大学の情報学部のカリキュラムにそもそも無理があるんだか(笑)。
いずれにせよ、「学校で教える」にせよ手子摺るのがC言語です。独学ならなおさらキツい、と思います。「C言語って何?レベル」だとなおさら、でしょうね。
第二に「入門書の類の出版数が多すぎる」と言う事です。「書籍数が多いのは良い事だ」と思われるかもしれませんが、個人的には逆、だと思っています。言い換えると「入門書として定番書籍が存在しない」と言う事を意味している、と思います。
つまり、事実上、「習わされる言語=自分で"学びたい"と思う言語ではない」んで、外的要因(例えばそれこそ「学校でやらされる」あるいは「就職に有利な言語」として)でC言語を学ぶわけですが、どの入門書も根本的な意味では「決定打ではない」と言う事です。だからこそ雨後の筍のように「C言語入門」がどんどん出版されている、と言う(笑)。しかし、結局「どの本も分かり辛い」のです。だから「C言語入門書」ってのは数が多い。
これは入門書の作者陣が「説明が下手糞」なのか(笑)。まあ、そう言う部分もあるでしょうが、別な見方をすると、「C言語をプログラミング初心者に説明する」と言う事自体が土台「無理がある」と言う事でしょうね。そうとしか思えません。つまり、「定番書籍」と言える定番書籍があるわけがない、と言う事になります。
(出版社観点だと、逆に言うと「商売的にオイしい」分野かもしれません・笑)

>これだけはしておいた方が楽にC言語の勉強に入って行ける様な勉強

つまり、それは「C言語を勉強する前にもっと別の簡単な言語を習得してる」方が良い、と言う事です。それが一番の勉強法です。
恐らく、「動的型付け言語」と言われる種類の言語を使って、まずは「プログラミング」自体に慣れた方が良いでしょう。その後「C言語」をやった方が結果効率的です。
個人的にはSchemeが好きなんですが、今度は「プログラミング入門書」と言える入門書が無いです(笑)。それはそれで困り物(当然!)です。
類するような動的型付け言語として、候補としては

・Python
・Ruby
・JavaScript

なんかがあります。このうち、JavaScriptは構文スタイルはCやJavaに似てるんですが、これも「JavaScript単体で上手くプログラミングを教える」入門書は、知ってる限り存在しないんで除外します。
結局、PythonかRubyをまずは使ってみる、ってのが一番良いでしょうね。色々調べてみると、Rubyの方が日本語で読める情報が多い、です。恐らく「まずはRubyを使って」「プログラミング自体を」学んでからCに移った方が良いでしょう。
Rubyはオンラインの日本語で読める「プログラミング入門」がPythonよりも良くって、特に「なるべくお金を使わずにプログラミングを覚えたい」のならRubyの方がお薦めですね。
まずは次のチュートリアル

プログラミング入門 - Rubyを使って - :
http://www1.tf.chiba-u.jp/~shin/tutorial/

辺りで「プログラミング自体」に慣れてみてください。

#1さんと同意見です。プログラミング言語初体験でC言語はお薦めしません。

>独学で市販のテキスト(初めてのC言語など)などを使って取得出切る物ですか?

取得出来るかもしれません。が、確率が低い、と思います。
参考事例を二つほど。
まず、独学じゃなくて、大学で「強制的に習わされる」としても、非常に学生の宿題の丸投げ率が高い言語です(笑)。これは特筆に値します。結論から言うと、「学校で習わされる」としても「最初に学ばせる」にはキツい言語だ、と言う事ですね。大学側もその事実を把握し...続きを読む

Qユークリッドの互除法で最大公約数を求める

<問題>
n^2+2n+1とn+3の最大公約数になりうる値をすべて求めよ

<解答>
整数a,bに対してa,bの最大公約数をg(a,b)とあらわす。

g(n^2+2n+1,n+3)=g(n+3,4)
4の正の約数は1,2,4であるから、g(n+3,4)として考えうるのも1,2,4である。

例えば、
n+3=5 すなわちn=2のとき、g(5,4)=1
n+3=6 ・・・ g(6,4)=2
n+3=8 ・・・ g(8,4)=4
となり、最大公約数として可能な数は1,2,4の3つの自然数である。

<質問>
「g(n+3,4)として考えうるのも1,2,4である。」
が必要条件であることはわかります。
その後、解答でなにがしたいのかよくわかりません。
なぜ例示しただけで「最大公約数として可能な数は1,2,4の3つの自然数である。」といえるのでしょうか?
よろしくお願いします。

<思ったこと>
必要十分条件なら「g(n+3,4)として考えうるのも1,2,4である」場合、「4の正の約数は1,2,4である」であることを示すことになると思います。

Aベストアンサー

 「…になりうる値をすべて求めよ」という習慣的な言い方は、論理的に正確な表現に言い直せば、

★〔「…になりうる値」を全て含み、【「…になりうる値」ではない値】はひとつも含まない集合〕の要素を列挙せよ。

という問いなんです。さらに、「…になりうる値」というのは、

★ 「…になる例」が少なくともひとつ存在するような値

という意味なんです。
 このように読み替えるんだという事は、(言葉遣いの習慣の問題ですから)憶えて戴くしかありません。

 で、その答となる集合をAとすると、

(1) <解答>の3行目までで
  A ⊂ {1,2,4}
であることが証明できた。

 ここまでで、{1,2,4}は「…になりうる値」を全て含んでいるのは確かである。けれども【「…になりうる値」でない値】も混じっているかもしれない。なので(1)の結論を「x∈{1,2,4}はx∈Aの必要条件である」と表すこともできます。

(2)<解答>の続きの部分では、 {1,2,4}の各要素について、それが「…になりうる値」だということを、実際に「…になる例」の存在を示す事で証明した。これで、
  {1,2,4} ⊂ A
であることが証明できた。

 この部分の証明だけを見ると、1,2,4の他にも「…になりうる値」があるかもしれない。なので、(2)の結論を「x∈{1,2,4}はx∈Aの十分条件である」と表すこともできます。

(3) 以上から、(1)かつ(2) すなわち、
  A = {1,2,4}
が証明できたというわけです。これを「x∈{1,2,4}はx∈Aの必要十分条件である」と言っても同じ事ですね。

 「…になりうる値をすべて求めよ」という習慣的な言い方は、論理的に正確な表現に言い直せば、

★〔「…になりうる値」を全て含み、【「…になりうる値」ではない値】はひとつも含まない集合〕の要素を列挙せよ。

という問いなんです。さらに、「…になりうる値」というのは、

★ 「…になる例」が少なくともひとつ存在するような値

という意味なんです。
 このように読み替えるんだという事は、(言葉遣いの習慣の問題ですから)憶えて戴くしかありません。

 で、その答となる集合をAとすると、

(1) <解答>...続きを読む

QC言語を好きになりたいのでメリットなどを教えてください!

学校でC言語の授業があることや、私が狙っている国家資格でC言語の問題が出ることなどから、Cを深く学びたいと思います。

春休みなんでちょうど勉強どきなんです。

しかし、C言語がうまくなるとどういうことが起きるのかよくわかりません。

C言語がうまくなると何が作れたりするんでしょうか?

C言語は素晴らしいのでなんでも作れる・・・でしょうか?笑

まあとりあえず、要は私にC言語を好きにさせてみてくださいということです。

よろしくお願いいたします!

Aベストアンサー

 VB…????謎だ。Officeとの連携が強いという意味でのメリット…?うーん、なるほど。プログラマとしては決してVBなんてオススメしたくないけれど、「好きにさせる」という観点ではそれも悪くないかもしれない。


 要するにプログラミングが役に立ったり、面白かったりすれば「好き」になれますよね。Excel・Wordとの連携に強いVBAを使えると、仕事に役立つ定型処理とかもできるようになり、直に作業効率に影響してくるでしょう。そうすると仕事早いし同僚にも自慢できるしで、役に立つこと尽くし(笑)。それくらいにVBAを使えるようになりたいと思えば、プログラミングも好きになれるんじゃないですかね?

 で、C言語に戻す。C言語でも基本的に同じです。ちゃんと使えるようになれば、簡単な定型処理ぐらいなら自分で書けるようになります(あまりCが定型処理を書くのに向いているとは思えないが、それはまた別の話)。それに学校で学ぶということは、今から勉強しておけばプログラミングにおいて他の生徒よりも大分advantageを取れますよね。そしたら少し友達に教えたりとかできるかもしれません。で、優越感にひたr…ごほん。

 ダメだ、邪な考えしか浮かばないorz でも結構プログラミングできない(てかやりもせず拒絶反応を示している)人は多いので、ある程度できるだけでも実際advantageになるんじゃないでせうか。


 で、目標のことですが、「四則演算の式を計算する」とかどうでしょう?普通の電卓は数・演算子を交互に入力しますが、そうではなく"1+6/3"のような式を入力したら、それを計算してくれるようなものです。非常に目標としても具体的で分かりやすいですし、基礎知識もまんべんなく必要とします。まぁ最初の課題として難しすぎるかもしれませんが…。

 あまり説得力のない文章でしたが…。参考になれば幸い。では。

 VB…????謎だ。Officeとの連携が強いという意味でのメリット…?うーん、なるほど。プログラマとしては決してVBなんてオススメしたくないけれど、「好きにさせる」という観点ではそれも悪くないかもしれない。


 要するにプログラミングが役に立ったり、面白かったりすれば「好き」になれますよね。Excel・Wordとの連携に強いVBAを使えると、仕事に役立つ定型処理とかもできるようになり、直に作業効率に影響してくるでしょう。そうすると仕事早いし同僚にも自慢できるしで、役に立つこと尽くし(笑)。そ...続きを読む

Q(x^2)'=2x, (x^1)'=1, (1)'=0, (x^-1)'=-x^-2 そして ∫x^-1 dx = ln|x| + C

(x^2)' = 2x^1 ⇔ ∫2x dx = x^2 + C
(x^1)' = 1 ⇔ ∫1 dx = x + C
※ ln(x)' = x^-1 ⇔ ∫x^-1 dx = ln|x| + C
(x^-1)' = -x^-2 ⇔ ∫-x^-2 dx = x^-1 + C
(x^-2)' = -2x^-3 ⇔ ∫-2x^-3 dx = x^-2 + C
ですが、

なぜ、※のところだけイレギュラーにになるのでしょう?

はるか昔、高校のときに導出方法は習いましたが、
イメージとしては、どう捉えればよいでしょう?

証明等は無くても構いませんので、
直感に訴える説明、あるいは、逆に高度な数学での説明などができる方いらっしゃいましたら、お願いします。

(もしかしたら、高度な数学では、イレギュラーに見えなくなったりしますか?)

Aベストアンサー

sanoriさん、こんにちは。

釈迦に説法みたいな話しかできませんが…。

(x^α)' = α x^{α-1} …(1)

は、α=0 でも、(x^0)' = 0・x^{-1} = 0 (x≠0)ということで成り立ち、実はイレギュラーというわけでもなかったりします。

(x^2)' = 2x^1
(x^1)' = 1x^0 = 1
(x^0)' = 0x^{-1} = 0
(x^{-1})' = (-1)x^{-2} = -x^{-2}
(x^{-2})' = (-2)x^{-3} = -2x^{-3}

ということなので。。。

つまり、(ln(x))') = 1/x = x^{-1} はこのリストとは別の話と解釈するわけです。

積分のほうも、
∫x^-1 dx = ln|x| + C …(2)
のかわりに、
∫0dx = ∫0x^{-1}dx = 0 + C' = x^0 + C
があると思えば、イレギュラーではなくなります。
(2)は、
∫nx^{n-1}dx=x^n+C …(3)
のリストに元々登場していないと解釈するわけです。

また、(3)の両辺をnで割って、
∫x^{n-1}dx = (1/n)x^n + C …(4)
のリストとして考えると、右辺のほうに1/nがあるので、そのリストからは最初からn=0は除外して考えなければなりません。

たまたま、∫x^{-1}dx = ln|x| + C となるので、はまりそうに見えますが、もともと除外していたところに、後から違う種類のものを持ってきてはめ込んだだけと解釈すれば、そこがイレギュラーになるのは不思議ともいえなくなってきます。

また、(4)のリストの立場で考えると、(分母にnがあるので)n=0を除外しなければならないけど、一方、積分∫x^{-1}dxというものは厳然として存在しているので、その隙間に、べき関数とは全く違う関数 ln|x|+C が入ってきているという言い方もできます。これは、べき関数だけでは一覧表が完成しないところに、logでもって完成させているということにもなります。つまりlogという関数は、べき関数のリストの「隙間」に入ってきて、「完成させる」というイメージです。

sanoriさん、こんにちは。

釈迦に説法みたいな話しかできませんが…。

(x^α)' = α x^{α-1} …(1)

は、α=0 でも、(x^0)' = 0・x^{-1} = 0 (x≠0)ということで成り立ち、実はイレギュラーというわけでもなかったりします。

(x^2)' = 2x^1
(x^1)' = 1x^0 = 1
(x^0)' = 0x^{-1} = 0
(x^{-1})' = (-1)x^{-2} = -x^{-2}
(x^{-2})' = (-2)x^{-3} = -2x^{-3}

ということなので。。。

つまり、(ln(x))') = 1/x = x^{-1} はこのリストとは別の話と解釈するわけです。

積分のほうも、
∫x^-1 dx = l...続きを読む

QC言語を学習することに将来性はあるのか

現在C言語を勉強中なのですが、C言語自体の将来性はどのくらいあるのでしょうか?
せっかく勉強するので、できれば将来性のある言語に重点を置いて学習したいと思って
います。
よくC言語は枯れた技術だと言われることが多いのですが、これからはC++やJava等が
使われることが多くなり、C言語はあまり使われなくなる言語なのでしょうか?
現状はゲーム分野や組み込み分野ではC言語は現役バリバリに使われていると
聞いているのですが、今後はJavaやC++といった言語がこういった分野でも
主流になってくる(C言語に取って代わる)のでしょうか?

C言語自体、あまり将来性がないようであれば、今後勉強するに当たって、
C言語をとことん追求するよりも他の言語に学習の重点を移行させたいと
考えています。

私自身はプログラムを勉強し、将来はゲーム制作あるいは組み込み分野の
開発に携わりたいと思っています。

こういったことに詳しい方がおられましたら、ぜひ教えて頂けないでしょうか?

Aベストアンサー

組込み系のソフト開発をしている者です。

業務は、ほぼ C だけです。
# アプリグループの中には C++ で開発しているところもあると聞きますが、
# 詳細はよく知りません。。。
# ちなみに、私は下回り (通信関係のプロトコル制御まわり) をやっています。

まずは、何でもいいので、一つの言語を極めるくらいまで勉強してみてください。
今、C の勉強をされているのであれば、C を極めてみましょう。
ま、極めるというのは大げさかもしれませんが、文法のことで質問することがなくなるくらいにはなりましょう。
特に C であれば、配列、ポインタ、構造体、できれば共用体といったところをしっかりとマスターしましょう。
# そうそう、組込み系であれば共用体は必須だと思ってください。

一つ言語を知っていると何が良いかというと、比較の基準ができることです。

今せっかく勉強している C を勉強しているのであれば、それをがんばってみてください。

将来性云々の話は、いろいろな方々が回答されているとおりあまり意識する必要がありません。
大事なのは、一つの問題に対して、どのような手順で解決すればよいのか、という「考え方」を学ぶことです。

組込み系のソフト開発をしている者です。

業務は、ほぼ C だけです。
# アプリグループの中には C++ で開発しているところもあると聞きますが、
# 詳細はよく知りません。。。
# ちなみに、私は下回り (通信関係のプロトコル制御まわり) をやっています。

まずは、何でもいいので、一つの言語を極めるくらいまで勉強してみてください。
今、C の勉強をされているのであれば、C を極めてみましょう。
ま、極めるというのは大げさかもしれませんが、文法のことで質問することがなくなるくらいにはなりま...続きを読む

Q(1-(1-C)^2)が(2C-C^2)になる計算方法

(1-(1-C)^2)を計算して
(2C-C^2)になる理由がいまいちわからないのですが教えてください。

(1-(1-C)^2)
=(1-1-C-C-C^2)
=(-2C-C^2)
になるようなきがするのですが・・・。

Aベストアンサー

1-(1-C)^2
=1-(1-C)×(1-C)
=1-(1-2C+C^2)
=1-1+2C-C^2
=2C-C^2

ご質問者様は
(1-C)^2の展開を(1-C)×(1-C) とせず、公式「(A±B)^2=A^2±2AB+B^2」も飛ばして、 1-C-C-C^2 としたので間違ったわけですね。


人気Q&Aランキング