[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 12:08 / Filesize : 69 KB / Number-of Response : 338
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part31



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/

281 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 08:35:03 ]
ところで、2.6って2.5に対して完全に上位互換?
2.5用のライブラリで2.6で動かなくなったのってある?

282 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 10:49:45 ]
>>281

基本的には 2.5 -> 2.6 では減っているものはない。
The *** module has been deprecated for removal in Python 3.0.
という形で 3.0 でなくなる予定のライブラリは -3 オブションで警告がでるのみ。
実際に標準ライブラリから外されるのは 3.0 から。

但し、細部では各ライブラリのバージョン・アップによる変更があるので、
ライブラリ自体が動かなくなったものは知らないが、# >>> import test.autotest を参考に。
それを使ったコードの方で修正が必要なものはあるかもしれない。

283 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 15:25:18 ]
>>206
#!/usr/bin/env python
# -*- coding: ascii -*-

import socket
import sys

try:
    host, frm, to = sys.argv[1: 4]
except ValueError:
    print "Usage: %s <host> <from> <to>" % (sys.argv[0])
    sys.exit(1)

print "Connecting to %s:25 ..." % (host)

sock = socket.socket()
try:
    idx = host.index(':')
except ValueError:
    addr = (host, 25)
else:
    addr = (host[:idx], int(host[idx + 1:]))
sock.connect(addr)

print "Connected"

284 名前: ◆TINKO/J0J6 [2009/01/20(火) 16:54:58 ]
import tinko

285 名前: ◆UNKOVIP9RM [2009/01/20(火) 16:56:15 ]
import unko

286 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 16:57:28 ]
unkoはexportするものだろ

287 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 17:56:07 ]
from anal export unko

288 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 17:56:14 ]
自然数k,p,qについて
k=mp+nq(m,nは「0以上の整数」)を満たす(m,n)の組の数をv(k)とするとき
p=3, q=7, kが1から100までのときの結果vの一覧を出力したいです
どのように書いたらいいですか?


289 名前: ◆UNKOVIP9RM [2009/01/20(火) 17:58:02 ]
>>288
ggks



290 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 18:05:00 ]
p=3
q=7
t=0
u=0
for k in range(1, 101):
v=0
for m in range(k/p+1):
if (k-m*p)%q == 0:
v+=1
print 'v(%d)=%d\n' % (k, v)
u+=v
if v:
t+=1
print 'total %d, %d\n' % (t, u)


291 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 18:11:16 ]
v = lambda k, p, q: \
[(m, n) for m in range(k/p + 1) for n in range(k/q + 1)
if k == m * p + n * q ]

for k in range(1, 101):
print k, '->', ', '.join(map(str, v(k, 3, 7)))


292 名前:291 mailto:sage [2009/01/20(火) 18:13:44 ]
あー計算量的に無駄なのか
まあいいや

293 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 18:26:22 ]
>>> p,q=3,7 ; Max=101
>>> for k in range(Max): print k, len(filter(lambda x:(k-x)>=0and(k-x)%q==0, range(0,Max,p)))
...
0 1
1 0
2 0
3 1
4 0
5 0
6 1
7 1
8 0
9 1

294 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 18:37:45 ]
すまん、こうだった

>>> p,q=3,7 ; Max=101
>>> for k in range(Max): print k, len(filter(lambda x:(k-x)%q==0, range(0,k+1,p)))
...
0 1
1 0
2 0
3 1
4 0
5 0
6 1
7 1
8 0
9 1

最後の len(... 以降が v みたいなもん、

295 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 18:48:31 ]
k=0は蛇足です

296 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 18:51:40 ]
>>289-
Thank you so match.

297 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 18:56:16 ]
>>280
待ち人来たらず

298 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 19:11:35 ]
p,q,d=3,7,100
for k in range(1,d+1): print k,'->',','.join(map(str,[(m/p,(k-m)/q) for m in filter(lambda x:(k-x)%q==0, range(0,k+1,p))]))
こうですか
わかりません

299 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 19:13:47 ]
>>283
ありがとうございました



300 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 19:37:45 ]
>>298
あってるっぽい気がするけど?

301 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 19:42:11 ]
ttp://www.toshin.com/center/sugaku-2b_mondai_6.html

302 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 19:49:44 ]
なるほどw

303 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:16:21 ]
python的に解くとどうなりますか?
3^(3^3)の一の位の数字は?
7^(7^7)の一の位の数字は?
13^(13^13)の一の位の数字は?
17^(17^17)の一の位の数字は?
n^(n^n)の一の位の数字は?


304 名前:デフォルトの名無しさん [2009/01/20(火) 20:30:34 ]
pythonを学習しようかと考えていますが、巷で出回っているフリーの(GUI)ツール類
などはCなどで書かれていると思いますが、ptyhonでも同様のことができますか?
そこまで大規模なツールではなく簡単シンプルなツールです。
本屋でちょっと読んだ参考書にはwindows用のフォームやボタンの配置などが
書かれていなかったので、CUIのプログラミングだけかと…

305 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:35:40 ]
Tkinter, wxPython, pywin32などでぐぐれ

306 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:37:08 ]
そんなことないですよ

307 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:38:38 ]
628 名前:デフォルトの名無しさん :2009/01/20(火) 20:10:12
VB6の代わりにならないかな
VB6ユーザーには、Delphiは難し過ぎるみたいだし
PythonにVB並のRADツールを備えた統合開発環境があればいいんだけど


629 名前:デフォルトの名無しさん :2009/01/20(火) 20:20:45
そこでIronPythonですよ。


630 名前:デフォルトの名無しさん :2009/01/20(火) 20:30:35
UbuntuではNativeで動き
WindowsではVMで動くPythonキボンヌ!

308 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:39:33 ]
pc11.2ch.net/test/read.cgi/tech/1167996371/

309 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:40:18 ]
pc11.2ch.net/test/read.cgi/tech/1157686822/



310 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 20:59:57 ]
>>288
BASICでクソプログラム見せられたらやっぱPythonできれいに書きたくなるよね。


311 名前:310 mailto:sage [2009/01/20(火) 21:01:43 ]
俺はIIの最後で2点と統計で2点落としちまったぜ

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
円安だったんだよ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<69KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef