- 1 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 23:44:57 ]
- Pythonオフィシャルサイト
www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ まとめWiki python.rdy.jp/ 関連スレ find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python 前スレ pc11.2ch.net/test/read.cgi/tech/1226830195/
- 312 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 21:23:33 ]
- >>304
オマエが読んだクソ本を怨め
- 313 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 21:38:57 ]
- from collections import defaultdict
p = 3 q = 7 d = 100 answer = defaultdict(int) for m in xrange(d / p): for n in xrange(d / q): k = p*m + q*n if k > d: break answer[k] += 1 for k in range(d+1): print k, answer[k]
- 314 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:21:03 ]
- >>303
from itertools import repeat def _f(n): def _mul(n, m): return ((n % 10) * (m % 10)) % 10 def _pow(n, m): return reduce(_mul, repeat(n, m-1), n) return _pow(n, _pow(n, n))
- 315 名前:314 mailto:sage [2009/01/20(火) 22:39:22 ]
- 間違えた。_powの第二引数は一の位だけじゃ駄目だ。
- 316 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 22:40:16 ]
- うむ
- 317 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 23:44:56 ]
- pow(n, pow(n, n), 10)
- 318 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 23:49:54 ]
- >>> pow(3,pow(3,3),10)
7 >>> pow(7,pow(7,7),10) 3 >>> pow(13,pow(13,13),10) 3L >>> pow(17,pow(17,17),10) 7L あってる?
- 319 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 00:35:03 ]
- あってるけど、
アルゴリズム的には n が大きいときの pow(n, n) が課題。
- 320 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 01:37:05 ]
- 遅いって言っても、1000ぐらいまでなら一瞬で出るぞ
>>> i=1 >>> while 1:print i,pow(i,i**i,10);i+=1 ... 1 1 2 6 3 7 4 6 5 5 6 6 7 3 8 6 9 9 10 0 11 1 12 6 13 3 14 6 ... ... ... 1197 7 1198 6 1199 9 1200 0 1201 1
- 321 名前:317 mailto:sage [2009/01/21(水) 01:57:21 ]
- nのべき乗の1の位が、ある周期で循環することを利用して指数を小さくしてみた。
# coding: utf8 def cycle(n): i = n*n % 10 lst = [i] while n != i: i = i*n % 10 lst.append(i) return lst def main(): cycles = [cycle(i) for i in xrange(10)] clen = [len(item) for item in cycles] for i in range(10): print i, cycles[i] print "" for n in xrange(1, 1000): cl = clen[n%10] nn = pow(n, cycles[n%10][n%cl]) nnn1 = pow(n, nn, 10) print n, nnn1 if __name__ == '__main__': main()
- 322 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 02:25:02 ]
- ほぼ同じことだけど、自分もやってみた、これだと、googol(=10**100)ぐらいまでは一瞬
def f(n): c = cycle(n,10) return pow(n, pow(n, n, c) or c, 10) def cycle(n, modulo): s=set() ; x = n % modulo while x not in s: s.add(x) ; x = x * n % modulo return len(s) for i in range(7): print i, f(10**10**i+i) $ python 303.py 0 0 1 1 2 6 3 7 4 6 5 5 6 6
- 323 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 02:28:11 ]
- www.kohgakusha.co.jp/books/detail/978-4-7775-1419-9
- 324 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 05:39:19 ]
- >>321
そこまでたどり着けば実はpow使わなくても答え出てるんだけどね
- 325 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 05:45:02 ]
- 13=10+3だから、13^nの1の位は3^nの1の位と同じで4個周期。
13=12+1だから13^13を4で割った余りは1。 13^(13^13)の1の位は3^1の1の位と同じなので3。 17=10+7だから、17^nの1の位は7^nの1の位と同じで4個周期。 17=16+1だから17^17を4で割った余りは1。 17^(17^17)の1の位は7^1の1の位と同じなので7。
- 326 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 08:11:54 ]
- クソ本が改訂してクソでなくなるのかな?
- 327 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 09:36:24 ]
- まあ評価は見てからですかねー
- 328 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 10:30:01 ]
- はじぱい 第2版 (2004/11) \5,040
www.amazon.co.jp/products/dp/4873112109/ はじぱい原著 3rd Edition (2008/07/16) $26.39 www.amazon.com/Learning-Python-3rd-Mark-Lutz/dp/0596513984/ 恥ぱい 初犯 (2007/11) \1,995 www.amazon.co.jp/products/dp/4777513211/ 恥ぱいネットワーク 初版 (2008/06) \1,995 www.amazon.co.jp/products/dp/4777513688/ 恥ぱい3 初版 (2009/01) \1,995 www.kohgakusha.co.jp/books/detail/978-4-7775-1419-9 恥ぱいが3.0用になったんですね
- 329 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 11:10:29 ]
- 恥の上塗りというわけですね。
- 330 名前:デフォルトの名無しさん [2009/01/21(水) 11:20:55 ]
- 俺もウェブの無料チュートリヤル翻訳して金稼ぎたい
- 331 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 11:40:37 ]
- ライブラリレファレンスの和訳更新・改良を
ガンガンやってくれるならお布施くらいはするでよ?
- 332 名前: ◆UNKOVIP9RM [2009/01/21(水) 11:53:01 ]
- >>312
惚れた 惚れた 惚れた できれば結婚してくれ
- 333 名前: ◆UNKOVIP9RM [2009/01/21(水) 11:54:09 ]
- >>328
買う 買うー
- 334 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 11:58:54 ]
- 周期が4の公約数になるのを利用するとこれでもok?
pow(n % 10, (n & 3) or 4, 10)
- 335 名前: ◆UNKOVIP9RM [2009/01/21(水) 11:59:03 ]
- >>> import >>329
>>> print (329.star()) "星3つ"
- 336 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 12:08:27 ]
- >>328
はじぱいの癖に5040円って翻訳書のはじ
- 337 名前: ◆UNKOVIP9RM [2009/01/21(水) 12:18:59 ]
- >>336
円安だったんだよ
|

|