2006-04-17 [長年日記]
λ. f (f x) == -x
今日の一行より。向井さんがなにやら悩んでるけど、単に虚数単位をかける関数で良い。
import Complex f :: RealFloat a => Complex a -> Complex a f x = x * (0 :+ 1)
ツッコミにあるように「実数関数」だったので、これじゃ全然良くなかった。仕方ないので少し真面目に考える。
- 条件からf2は全単射
- そこから、fが単射であることと、fが全射であることが言えるので、fもやはり全単射
- f(-x) = f(f(f(x))) = -f(x)
- 零と正の実数に対する値だけ定義すれば、負の実数に対する値は自動的に定まる
- 特に f(0)=-f(0) なので、f(0) = 0
- 0以外の数に対しては「x ↦ f(x) ↦ -x ↦ -f(x) ↦ x」という周期4のサイクル
したがって、正の実数を二つの同型な集合A,Bに分割出来ればよい(A≅B, A∪B=正の実数, A∩B=∅)。 そのような集合A,Bと全単射g:A->Bが与えられたとすると、以下のような関数が条件を満たすことは明らか。
f 0 = 0 f x | x<0 = - f (-x) | x∈A = g x | x∈B = - (g^{-1} x)
したがって、問題はこのようなA,B,gを見つけることに還元される。
そのようなA,B,gの選び方は複数存在するけど、一つの方法は整数の偶奇を利用する方法。
- A = {x∈R | 0<x, odd (ceiling x) }
- B = {x∈R | 0<x, even (ceiling x) }
- g(x) = x+1
他の方法として…
(続く?)
実数から実数への関数 f でちゅ。
あ、見落としてました<br>しょぼーん(´・ω・`)