プログラムの依頼

 投稿者:GAI  投稿日:2012年12月28日(金)14時14分52秒
  任意の正の整数nに対して、まずこの数を超える最も近い(n-1)の倍数へ移し、さらにその移した数を超える最も近い(n-2)の倍数へ更に移していくプロセスを最も近い2の倍数になるまで続けることにして、その結果をf(n)とする。


10→18(9の倍数で10を超える最も近い数)
 →24(8の倍数で18を超える最も近い数)
 →28(7の倍数で24を超える最も近い数)
 →30(6の倍数で28を超える最も近い数)
  →30(5の倍数で30を超える最も近い数)
  →32(4の倍数で30を超える最も近い数)
  →33(3の倍数で32を超える最も近い数)
  →34(2の倍数で33を超える最も近い数)

従ってf(10)=34
となる。
こうしてf(n)が定義されたものについて、任意のnを与えればf(n)の値を知れるプログラムを作って頂きたいのです。


この妙な関数f(n)が
 n→∞で
 n^2/f(n)→π  ということが起こるという。
 

Re: プログラムの依頼

 投稿者:山中和義  投稿日:2012年12月28日(金)16時05分46秒
  > No.2766[元記事へ]

GAIさんへのお返事です。

> この妙な関数f(n)が
>  n→∞で
>  n^2/f(n)→π  ということが起こるという。

n     f(n)      n^2/f(n)
9995  31812118  3.14031354341135
9996  31813522  3.14080333513529
9997  31814038  3.14138082691672
9998  31816050  3.1418106270263
9999  31832412  3.1408239187153
10000  31833630  3.14133198130405



DEF f(m,t)=INT((m+(t-1))/t)*t !m以上で最小のtの倍数

FOR n=1 TO 10000

   LET fn=n
   FOR k=n-1 TO 2 STEP -1
      LET fn=f(fn,k)
      !!!PRINT fn !debug
   NEXT k
   PRINT n; fn; n^2/fn

NEXT n

END
 

戻る