fork download
  1. #include <iostream>
  2. #include <cmath>
  3. #include <iostream>
  4. #include <cmath>
  5.  
  6. template<class T>
  7. // F(1) == F(2) == 1 だが Fi(1) == 1 とする
  8. T Fi(const T& X) {
  9. T Phi = (1 + std::sqrt(5)) / 2;
  10. T A01 = std::fmod(X, 3) == 0 ? -1 : 1;
  11. return (std::log(std::sqrt(5) * X + std::sqrt(5 * (X * X) - 4 * A01)) - std::log(2)) / std::log(Phi);
  12. }
  13. template<class T>
  14. T F(const T& N) {
  15. T Phi = (1 + std::sqrt(5)) / 2;
  16.  
  17. return (std::pow(Phi, N) - std::pow(-Phi, -N)) / std::sqrt(5);
  18. }
  19.  
  20. int main() {
  21. for (std::size_t i = 0; i < 128; i++) {
  22. double T = F<double>(i);
  23. if(i == 2){std::cout << T << ',' << "nan" << std::endl; continue;} // Fi(F(2)) を避ける
  24. std::cout << T << ',' << Fi<double>(T) << std::endl;
  25.  
  26. }
  27.  
  28. return 0;
  29.  
  30. }
  31.  
Success #stdin #stdout 0s 4556KB
stdin
Standard input is empty
stdout
0,0
1,1
1,nan
2,3
3,3.90749
5,5
8,5.98701
13,7
21,7.99812
34,9
55,9.99973
89,11
144,12
233,13
377,14
610,15
987,16
1597,17
2584,18
4181,19
6765,20
10946,21
17711,22
28657,23
46368,24
75025,25
121393,26
196418,27
317811,28
514229,29
832040,30
1.34627e+06,31
2.17831e+06,32
3.52458e+06,33
5.70289e+06,34
9.22747e+06,35
1.49304e+07,36
2.41578e+07,37
3.90882e+07,38
6.3246e+07,39
1.02334e+08,40
1.6558e+08,41
2.67914e+08,42
4.33494e+08,43
7.01409e+08,44
1.1349e+09,45
1.83631e+09,46
2.97122e+09,47
4.80753e+09,48
7.77874e+09,49
1.25863e+10,50
2.0365e+10,51
3.29513e+10,52
5.33163e+10,53
8.62676e+10,54
1.39584e+11,55
2.25851e+11,56
3.65435e+11,57
5.91287e+11,58
9.56722e+11,59
1.54801e+12,60
2.50473e+12,61
4.05274e+12,62
6.55747e+12,63
1.06102e+13,64
1.71677e+13,65
2.77779e+13,66
4.49456e+13,67
7.27235e+13,68
1.17669e+14,69
1.90392e+14,70
3.08062e+14,71
4.98454e+14,72
8.06516e+14,73
1.30497e+15,74
2.11149e+15,75
3.41645e+15,76
5.52794e+15,77
8.94439e+15,78
1.44723e+16,79
2.34167e+16,80
3.78891e+16,81
6.13058e+16,82
9.91949e+16,83
1.60501e+17,84
2.59695e+17,85
4.20196e+17,86
6.79892e+17,87
1.10009e+18,88
1.77998e+18,89
2.88007e+18,90
4.66005e+18,91
7.54011e+18,92
1.22002e+19,93
1.97403e+19,94
3.19404e+19,95
5.16807e+19,96
8.36211e+19,97
1.35302e+20,98
2.18923e+20,99
3.54225e+20,100
5.73148e+20,101
9.27373e+20,102
1.50052e+21,103
2.42789e+21,104
3.92841e+21,105
6.35631e+21,106
1.02847e+22,107
1.6641e+22,108
2.69257e+22,109
4.35668e+22,110
7.04925e+22,111
1.14059e+23,112
1.84552e+23,113
2.98611e+23,114
4.83163e+23,115
7.81774e+23,116
1.26494e+24,117
2.04671e+24,118
3.31165e+24,119
5.35836e+24,120
8.67001e+24,121
1.40284e+25,122
2.26984e+25,123
3.67267e+25,124
5.94251e+25,125
9.61519e+25,126
1.55577e+26,127