217:デフォルトの名無しさん 2015/05/29(金) 14:56:57.46 ID:AjLw/6wQ.net

お題:数列Hが以下のように定義されているとき、H(2015)を求める。
H(0) = 0
H(n) = n - H(H(H(n - 1))) (n > 0)



223:デフォルトの名無しさん 2015/05/29(金) 18:33:58.90 ID:mOKk8Lcr.net

H(2010)プログラム

224:デフォルトの名無しさん 2015/05/29(金) 20:22:03.26 ID:iCMpStJ7.net

アッカーマン関数みたいなもんか、メモ化すれば解けないこともないかな。

226:デフォルトの名無しさん 2015/05/29(金) 21:37:01.64 ID:k/z27UFZ.net

ただのリカーシブコールの問題かと思ったら違うのかw

228:デフォルトの名無しさん 2015/05/29(金) 21:52:45.50 ID:iCMpStJ7.net

>>226
ただの再起関数問題だけど、再起回数が多いので処理量が多い。
多重ループ組んでるような窮屈感がある。

229:デフォルトの名無しさん 2015/05/29(金) 22:16:08.95 ID:k/z27UFZ.net

>>228
あーやっぱり再帰の問題は再帰の問題なのか。
なんかもっとまったく別のアプローチがあるのかと

230:デフォルトの名無しさん 2015/05/29(金) 22:18:00.47 ID:iCMpStJ7.net

最適化として、処理量を落とすことを考えるって感じなんだが。
まぁ、暇なら組んでみて。

220:デフォルトの名無しさん 2015/05/29(金) 15:34:53.49 ID:7gkBDvqN.net

答え出ないんだが
こちらの処理系(gcc4.9.2)では1368

221:デフォルトの名無しさん 2015/05/29(金) 15:38:47.23 ID:CjkVTpML.net

>>220
const int N = 2005;

222:デフォルトの名無しさん 2015/05/29(金) 15:45:05.87 ID:7gkBDvqN.net

>>221
あ、ごめん
それと答え出たね

218:デフォルトの名無しさん 2015/05/29(金) 15:22:19.69 ID:CjkVTpML.net

Java

数学解らんからこれで良いのかわからないw

219:デフォルトの名無しさん 2015/05/29(金) 15:27:05.84 ID:KO9INHN8.net

Haskell

225:デフォルトの名無しさん 2015/05/29(金) 21:35:20.97 ID:iCMpStJ7.net

>>217 C++。メモ化のアイディアいっちばーんとか思ってたら、みんなやってたわ。
なのであんまり面白いコードにならなかったなぁ。

227:デフォルトの名無しさん 2015/05/29(金) 21:43:56.07 ID:gldsOPm0.net

Haskell

C

233:デフォルトの名無しさん 2015/05/30(土) 07:03:27.91 ID:oUtY+/A5.net

J

H =: 3 : 0 M.


if. y < 1 do. 0 else. y - H H H y - 1 end.
)

H 2015


1375

231:デフォルトの名無しさん 2015/05/30(土) 02:28:10.40 ID:xl0Q5N5K.net

H(10000)=6823
であってる?
(JavaScriptで約1秒で計算)

232:デフォルトの名無しさん 2015/05/30(土) 02:55:07.25 ID:XGN93yVi.net

1000 682
10000 6823
100000 68233
1000000 682328
10000000 6823278
100000000 68232781

おまけ

manaveeで数学を教える東大卒の女講師が美人すぎると話題に

元スレ:http://toro.2ch.sc/test/read.cgi/tech/1429195275/