人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【数学】【逆関数】【アルゴリズム】

x = (4N-1+(-1) ^ N) /2

という関数があります。

これを、
Nについての式として
N=の形に直したいのですが、方法がわかりません。
逆関数、というものを使うらしいというところまではたどり着いたのですが。

回答だけでなく、わかりやすく、解法を教えていただけると幸いです。

1521378272
●拡大する

●質問者: サロン日焼け
●カテゴリ:科学・統計資料
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● みやど
●50ポイント ベストアンサー

明記してありませんが、n=1, 2, 3, …のつもりでしょうか。違うなら適宜直すように。

そうだとすると、

n=1, 3, 5, …のとき x=(4n-2)/2=2n-1 (x=1, 5, 9, …)
nについて解くと n=(x+1)/2

n=2, 4, 6, …のとき x=4n/2=2n (x=4, 8, 12, …)
nについて解くと n=x/2

以上より
n=(x+1)/2 (x=1, 5, 9, …)
n=x/2 (x=4, 8, 12, …)


みやどさんのコメント
場合分けが嫌なら、例えば n={2x+1-(-1)^x}/4 (x=1, 4, 5, 8, 9. …) と書くこともできます。 そもそも昔は場合分けして定義した関数を1つの関数とは認めていなかったのです。しかし書き方によって1つの関数になったり、そうでなくなったりすることが分かってきて、その定義は廃れたのです。

質問者から

すみません、nは自然数です。
xを使った式なのに、xに条件がついてしまうのがもやっとしてしまって。
プログラムで解こうとすると、いったん答えを出して、それの奇偶判定をして、というのがスマートでないと感じたもので、もっとシンプルな式があるのかな、と思った次第です。


2 ● rsc
●50ポイント

使っている言語が何かわかりませんが、奇偶で場合分けしたくないだけなら、整数除算を使って次のような感じでどうでしょうか。(^_^;
BASIC系なら、n=(x+1)\2 とか、n=INT((x+1)/2)
CやJavaなら、n=(x+1)/2
Python なら、n=(x+1)//2 とか、n=int((x+1)/2)
※参考URL
http://d.hatena.ne.jp/rsc96074/20180319/1521450025


質問者から

すみません、nは自然数です。
xを使った式なのに、xに条件がついてしまうのがもやっとしてしまって。
プログラムで解こうとすると、いったん答えを出して、それの奇偶判定をして、というのがスマートでないと感じたもので、もっとシンプルなやり方があるのかな、と思った次第です。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ