O slideshow foi denunciado.

yukicoder : No.195 フィボナッチ数列の理解(2)

0

Compartilhar

Carregando em…3
×
1 de 7
1 de 7

Mais Conteúdo rRelacionado

Livros relacionados

Gratuito durante 14 dias do Scribd

Ver tudo

Audiolivros relacionados

Gratuito durante 14 dias do Scribd

Ver tudo

yukicoder : No.195 フィボナッチ数列の理解(2)

  1. 1. yukicoder No. 195 フィボナッチ数列の理解(2) 出題/解説 kmjp 1
  2. 2. 問題 • (A,B)フィボナッチ数列(以下(A,B)列)の 第k項𝐹𝐴,𝐵(𝑘)は: – 𝐹𝐴,𝐵 1 = 𝐴 – 𝐹𝐴,𝐵 2 =B – 𝑘 ≥ 3の時𝐹𝐴,𝐵 𝑘 = 𝐹𝐴,𝐵 𝑘 − 1 + 𝐹𝐴,𝐵 𝑘 − 2 • 3正整数X,Y,Zを含む(A,B)列を求めよ – X,Y,Zが一致し実質整数が1・2個の場合も 2
  3. 3. 重要な性質 • (A,B)列は(1,0)列と(0,1)列の線形結合 で表現可能 • 𝐹1,0(𝑘)と𝐹0,1(𝑘)を計算しておくと、𝐹𝐴,𝐵(𝑘) が簡単に計算できる 3 A 倍 B 倍 𝐹𝐴,𝐵 𝑘 = 𝐴 × 𝐹1,0 𝑘 + 𝐵 × 𝐹0,1 𝑘 足 す 𝑘 1 2 3 4 5 6 𝐹1,0(𝑘) 1 0 1 1 2 3 𝐹0,1(𝑘) 0 1 1 2 3 5 𝐹𝐴,0(𝑘) A 0 A A 2A 3A 𝐹0,𝐵(𝑘) 0 B B 2B 3B 5B 𝐹𝐴,𝐵(𝑘) A B A+B A+2B 2A+3B 3A+5B
  4. 4. 2整数X,Yの場合 – 第p項がX、第q項がYになるとしてp,qを総当たり – 𝐹1,0 𝑘 と𝐹0,1 𝑘 が計算済みならば、これは 単なるA,Bの連立方程式 • 𝐹1,0 45 ≥ 109 よりp,qは45程度まで調べればよい • A,Bが正整数かつ最小のものが解 – 2整数では解は必ず存在する • 少なくともA=X, B=Yは当然X,Yを含む 4 𝐹𝐴,𝐵 𝑝 = 𝐴 × 𝐹1,0 𝑝 + 𝐵 × 𝐹0,1 𝑝 = 𝑋 𝐹𝐴,𝐵 𝑞 = 𝐴 × 𝐹1,0 𝑞 + 𝐵 × 𝐹0,1 𝑞 = 𝑌
  5. 5. 3整数X,Y,Zの場合 • 2整数同様X,Yを含む(A,B)を求める • 求めた(A,B)列にZが含まれるか検証 5
  6. 6. 1整数Xの場合 • Aが最小なものを求めたいのでA=1に固定 – 少なくとも(1,X)列が解の候補となり得るので、 A>1のケースは考えなくて良い • (1,B)列がXを含むようなBを求める – 1変数の方程式を解きBが正整数となるものを求める • 別解:「1とXの2値を含む」と読み替えて 2整数の解法を適用する – writer解はこれ 6 𝐹1,𝐵 𝑝 = 𝐹1,0 𝑝 + 𝐵 × 𝐹0,1 𝑝 = 𝑋
  7. 7. 元ネタ・所感 • yukicoderを始める前、TopCoderのwriter デビュー向けに考えた問題 – 難易度はDiv2Hard位かと思いますがいかがで しょう? – フィボナッチ祭ということでセットで出題 • 計算量はO log 𝑋 × log 𝑌 × log 𝑍 – 対数の底は黄金数𝜙 = 1+ 5 2 – けっこう珍しい計算量ではないですか? 7

×