トップ «前の日記(2006-04-16) 最新 次の日記(2006-04-18)» 月表示 編集

日々の流転


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

他の方法として…

(続く?)

Tags: quiz
本日のツッコミ(全2件) [ツッコミを入れる]
ψ 無名関数 (2006-04-18 12:38)

実数から実数への関数 f でちゅ。

ψ さかい (2006-04-18 12:41)

あ、見落としてました<br>しょぼーん(´・ω・`)