1 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 01:27:53 ] Python オフィシャルサイト www.python.org/ 日本Pythonユーザ会 www.python.jp/Zope/ FrontPage - Pythonのお勉強 python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1201073019/l50 ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python ◆関連リンク Python 日本語ドキュメント - Pythonistaのお友達 www.python.jp/doc/release/ Pythonのバイブル的書籍 www.amazon.co.jp/dp/4797341815 その前編 www.amazon.co.jp/dp/4797341815
793 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:18:58 ] >>> import urllib2 >>> urllib2.urlopen("tinyurl.com/23y5e ").url 'www.bulldog.co.jp/ '
794 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 01:01:25 ] >>792 やっぱり '3' in str(i) がキホン?
795 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 07:51:38 ] FizzBuzz問題って色んなバージョンあるんだね ttp://ja.wikipedia.org/wiki/%E6%B8%A1%E8%BE%BA%E9%90%98
796 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 11:57:56 ] 問題をアレンジして 3の倍数および3がつく時、アホになる に変えてみると?
797 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:24:06 ] for i in range(100):print (i%3/2or(-~i/10==3)or(-~i%10==3))*'Aho'or-~i
798 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:28:04 ] -~i何度も使うならこっちの方が短いね for i in range(1,101):print (i%3==0or(i/10==3)or(i%10==3))*'Aho'or i
799 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 12:40:04 ] しね
800 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:14:31 ] x%y==0 は、x%y<1の方が短い あと、(i/10==3)or(i%10==3)だったら'3'in`i`が短い
801 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:20:56 ] for i in range(1,101):print(i%3<1or'3'in`i`)*'Aho'or i
802 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 14:23:20 ] for i in range(100):print(i%3/2or'3'in`-~i`)*'Aho'or-~i
803 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 15:10:14 ] ('3'in`-~i`) == ('3'in`~i`)
804 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:02:03 ] くだらね
805 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:06:33 ] strと``ってどう違うの? 測ると``の方がだいぶ速いみたいだけど。
806 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:27:25 ] UNARY_CONVERT と CALL_FUNCTION
807 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:32:14 ] strじゃなくてreprだな
808 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 16:57:31 ] str は、そのオブジェクトを表す適当な文字列 repr は、そのオブジェクトを表すpython 式 >>> `'a'` "'a'" >>> str('a') 'a' >>> `2**32` '4294967296L' >>> str(2**32) '4294967296'
809 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 18:48:30 ] >>> [u'ほげ',u'ふが'] [u'\u307b\u3052', u'\u3075\u304c'] >>> `[u'ほげ',u'ふが']` "[u'\\u307b\\u3052', u'\\u3075\\u304c']" >>> `[u'ほげ',u'ふが']`.decode('unicode-escape') u"[u'\u307b\u3052', u'\u3075\u304c']" >>> print `[u'ほげ',u'ふが']`.decode('unicode-escape') [u'ほげ', u'ふが'] 各行の動作の違いを教えてください
810 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:19:51 ] >>807 >>808 なる、reprと同じだったね。 にしても不思議、何度測ってもrep()より``のが速い。
811 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:54:57 ] >>810 速度は>>806 が書いてあるように `` が UNARY_CONVERT のバイトコードだけになるから
812 名前:デフォルトの名無しさん [2008/03/20(木) 20:23:06 ] IDLEって完全にPython自身で書かれているのか・・・ ってことは自分のプログラムの途中から IDLE を起動するなんてこともできるのか?
813 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:57:48 ] import wx app = wx.PySimpleApp(0) frame = wx.Frame(None, -1, "Hello wxPython World!") app.SetTopWindow(frame) frame.Show(True) app.MainLoop() > AttributeError: 'module' object has no attribute 'PySimpleApp' 環境ubuntu7.10。wxPythonは入れたが上のエラーが出る。なぜ?
814 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:02:57 ] 他にwx.pyがあるんじゃないか?そのスクリプト自体がwx.pyとか
815 名前:813 mailto:sage [2008/03/20(木) 21:05:27 ] うわ本当だ。。。 その通りです。ありがとう。>>814
816 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:58:54 ] >>811 へー、バイトコードなんて調べた事無かったから>>806 は意味不明でしたw ようするに最終的にreprを呼ぶコードが出来るんだけど、 ``から出来たコードの方が速く処理が終わるのかな。
817 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:10:27 ] wxWidgets にはさ、GUI を XML で記述するってのがあるじゃん。あれと同じ理屈で Tk を YAML で記述するってのは無いかね。。。。yaml がなければせめて XML で。最初は自力で簡単なコーディングしてて gui_yaml = """ frame1(Frame): text: "Hello tk!" button1(Button): text: Exit command: quit """ て感じの yaml 形式テキストをつくって import yaml dict_ = yaml.load(gui_yaml) すると、 {"frame1(Frame)": { "text": "Hello tk!", "button1(Button)": { "text": "Exit", "command": "quit" }}} ていう辞書になるので、これを適当に解析して name(base_class) という項目を見つけたら指定されたクラスインスタンスを生成して、 command って項目があったら値に対応するメソッドを関連づけて… みたいな感じで Tk GUI を構築しようとしたんだけど、辞書だと順番が保存されないんで、コントロールを生成する順番に依存する処理の場合に死ぬる事に気づいた。 packするとき、どの順番で pack する?とか。grid 使えば順番非依存になるのかも。 というわけで自分でつくるのあきらめたので、できあいのやつ教えてください。
818 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:19:17 ] もしマトモに yaml -> Tk ビルダ作ったら、みんな使ってくれるかい?
819 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:24:56 ] なんで今更Tkにこだわるのさ
820 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:35:39 ] だって標準ライブラリにくみこまれてるじゃん
821 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 01:46:29 ] 辞書にorder項目を追加するだけじゃね?
822 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:13:48 ] 順番を保存するならシーケンスにするしかないよね。 てか辞書じゃ重複できないから、その例ちと変な気が。 Tkだととても軽いというのなら意味は有ると思う。
823 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:56:18 ] import yaml # PyYAML from pyyaml.org/wiki/PyYAML import Tkinter import re def build(parent, dic, commands): widget = None for key, val in dic.items(): o = re.match(r"(?P<name>\w+)\((?P<base>\w+)\)", key) if o: name, base = o.group("name", "base") klass = getattr(Tkinter, base) widget = klass(parent) #widget.pack() if parent: setattr(parent, name, widget) if isinstance(val, dict): build(widget, val, commands) elif key == "command": parent["command"] = commands[val] elif key == "pack": parent.pack(**val) if isinstance(val, dict) else parent.pack() elif key == "grid": parent.grid(**val) if isinstance(val, dict) else parent.grid() else: parent[key] = val return widget
824 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 02:59:55 ] # テストコード if __name__ == "__main__": gui_dict = yaml.load(""" frame(Frame): button1(Button): grid: {column: 1, row: 2} text: OK button2(Button): grid: {column: 2, row: 2} text: Cancel ent1(Entry): grid: {column: 1, row: 1} ent2(Entry): grid: {column: 2, row: 1} memo1(Text): grid: """) commands = {} app = build(None, gui_dict, commands) app.mainloop()
825 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:03:13 ] 823-824をそのまま貼付けて実行してください。 Entry の textvariable の扱いをどうすればよいかがさっぱり思いつかん。 一貫性を持たせるという意味で "text" でアクセスできればいいんだけど。
826 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:35:59 ] 標準にこだわってるくせに pickle使わずにYAML使う愚
827 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:52:49 ] だって xml より yaml のほうが編集しやすいじゃん。 まあ、たしかに yaml 表現が python の辞書リテラルとほとんど同じだから、 まんま python 式で書いてもいいんじゃ?と思ったのは事実。 だけど文字列を "" で囲まなくて良いのは地味に楽。
828 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 03:55:20 ] class TestClass(object): def __init__(self, i_name): _name = i_name def __eq__(self, i_other): if not isinstance(i_other, TestClass): return False return self._name == i_other._name a_key = TestClass('test') a_dic = {} a_dic[a_key] = 0 --------------------------------------------------- 上のソースコードをPython 2.5.2で実行すると問題ないけど、 Python 2.6a1で実行すると、最後の行でエラーがでたよ。 TypeError: unhashable type: 'TestClass' Python 2.6以降だと、object.__hash__()は実装されてないものなん?
829 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:06:37 ] >>827 それならさ、 wxPythonのXRCedが吐き出すXMLをYAML化してよ
830 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:11:50 ] >>823 GJ!! インデント崩れてない?
831 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:46:11 ] # インデント修正+コメント加筆 def build(parent, dic, commands): widget = None for key, val in dic.items(): o = re.match(r"(?P<name>\w+)\((?P<base>\w+)\)", key) if o: # name(base_class_name) にマッチした場合は新規にウィジェット生成する name, base = o.group("name", "base") # 名前とクラス名を取り出す widget = getattr(Tkinter, base)(parent) # ウィジェット生成 if parent: setattr(parent, name, widget) # 親の属性としてウィジェットを追加 if isinstance(val, dict): build(widget, val, commands) # ウィジェットの設定 elif key == "command": parent["command"] = commands[val] # 呼び出し可能なオブジェクトをコマンドに指定 elif key == "pack": parent.pack(**val) if isinstance(val, dict) else parent.pack() elif key == "grid": parent.grid(**val) if isinstance(val, dict) else parent.grid() else: parent[key] = val return widget # 最後に生成したウィジェットを返す
832 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 04:50:23 ] # テストコード gui_dict = yaml.load(""" frame(Frame): button1(Button): grid: {column: 1, row: 2} text: OK button2(Button): grid: {column: 2, row: 2} text: Cancel ent1(Entry): grid: {column: 1, row: 1} ent2(Entry): grid: {column: 2, row: 1} memo1(Text): grid: """) commands = {} app = build(None, gui_dict, commands) app.mainloop()
833 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:58:33 ] このまま進歩してって、数日したらちょっとしたフレームワークが出来上がってそうだ。
834 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:40:58 ] ____ / \ / ─ ─ \ / (●) (●) \ ない ない | (__人__) | \ ` ⌒´ ,/ r、 r、/ ヘ ヽヾ 三 |:l1 ヽ \>ヽ/ |` } | | ヘ lノ `'ソ | | /´ / |. | \. ィ | | | | |
835 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:42:14 ] 思いつきだけで始めたことはたいてい早晩ポシャる 失敗するのはいいのだが、問題なのは、 一度や二度の失敗で学ばない人間がいかに多いかということだ
836 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:10:21 ] Pythonを選んだこと自体が失敗だからなぁ
837 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:13:51 ] 歴史から学べるのはただ一つ、 人は歴史から学ばないということだけ だとばっちゃが言ってた
838 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 01:22:16 ] つまり韓国に関わっていたら日本は不幸になるってことですね! さすがばっちゃ!頭いいや!
839 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 01:47:02 ] >>835 一度や二度の失敗で投げてたら何も作れんぞ。 大事なのは、捨てて作り直す勇気だ。
840 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:04:52 ] 自作してる時点でTkの負けだと思いました>< xml使ってないけど。
841 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:22:33 ] 出来あがった物が思いの外ショボいと モチベーションが続かないんだよなぁ
842 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:33:50 ] >>837 φ(..。 )メモシテオコウ
843 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 03:40:18 ] こういうのは衝動が肝心だと思うんだ。 ガーッと書いて結局没になる、そういう自己満足って大事よ。 あんまりはまるとPC恐怖症になるけど。
844 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 07:13:06 ] 何度やっても同じだよ。 そもそもセンスがないんだから。一生ドカタ暮らし。
845 名前:デフォルトの名無しさん [2008/03/23(日) 09:23:21 ] 一生ドカタできるならまだいいさ。 俺なんかすら干されそうだ。 マァ無能だから仕方ない。 結構なんてするんじゃなかった。 自殺すらできない。保険増額しておこう。
846 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:28:05 ] なんだこの流れ
847 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:39:22 ] 流れなのかこれは。
848 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 12:50:59 ] 春は色々湧く季節
849 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:28:31 ] PythonにRubyのPathnameみたいなクラスってないですか? os.path.hoge(path); os.path.huga(path)が面倒なので p = Path(path)などとしておいて p.hoge(); p.huga()とできるような感じのものでいいんですが… 自分でつくるしかないですかね?
850 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:37:35 ] よく意味が分からんがimport os.path as pって意味ではなくて? 別にimport os.pathしてからp = os.pathでもいいけど。
851 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:47:44 ] すまん。Rubyしらんのに適当いうもんじゃなかった
852 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:57:32 ] >>849 標準ではないけど ttp://www.jorendorff.com/articles/python/path/ とか
853 名前:849 mailto:sage [2008/03/23(日) 14:19:38 ] >>850 >>852 いろいろ検索しても見つからなかったのでないのかと思っていましたが あるんですね。探し方が悪かっただけで。ありがとうございます!
854 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:27:19 ] >>853 今後もPythonと付き合っていくなら可能な限り標準モジュールを利用した方がいいよ
855 名前:850,851 mailto:sage [2008/03/23(日) 14:46:12 ] >>853 いや、俺のは違うから。スマン。 RubyのPathnameオブジェクトってのを知らなかったんで 勘違いしたんだよ。
856 名前:849 mailto:sage [2008/03/23(日) 15:07:30 ] >>854 そういうものなんですかね? os.pathは使うとき逐一引数にパス名指定しないといけないので面倒なんですよね… >>852 さんに紹介していただいたようなクラスが標準に入ればいいのですが >>855 ああ、すいません。書き方が悪かったみたいです >>855 さんの回答は今回はちょっと希望に沿うものではなかったのですが 質問したときは回答していただいた方全員にお礼を言いたいと思っているので…
857 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 18:13:25 ] 「できるだけ標準モジュールを使え」はGuideの言葉だっけ?
858 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 19:29:53 ] >>849 os.stat()を使えば解決しそうだけど
859 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:17:05 ] lambdaで逃げるって手も...ないか。
860 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 21:26:23 ] Guideって誰? それどんな道案内?
861 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:15:43 ] >>860 かわいそうなPython使いを ジョセフ様に認められた清く正しい言語Rubyへの 改宗を促すGuideです。 Pythonを作られたGuidoさんとは別です。
862 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:20:26 ] カルト言語逝ってよし。
863 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:42:31 ] ruby使いは正確悪いことで有名
864 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:56:51 ] お前の性格の悪さも分かった
865 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:33:40 ] >>863 たまには変換候補のことも思い出してあげてください。
866 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 14:37:14 ] pythonで数値計算はnumpyだけど数式処理は何かあるの?
867 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:54:39 ] しらない
868 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:00:16 ] 他人を敬えない人は、他人から敬われることはありません。 日本語が不自由ならなおさら。 良くて一生ドカタ。 たいていはいい年になってから路頭に迷う。 本当にありがとうございました。
869 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:10:30 ] 経験者の話は説得力がありますね
870 名前:デフォルトの名無しさん [2008/03/24(月) 23:36:43 ] なんといつのまにか wxVCLなるものがあるみたいじゃないか。VCLの使い勝手が忘れられない俺がまちのぞんだもの。 だれかpythonバインディング作って
871 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:20:38 ] C++スレにも書いたけど、こっちにもネタ投下してみる。 なるべく短いプログラム書いてみようぜ。 基本問題: 例えば N = 8 としたときに 「この文章には0が1個、1が5個、2が3個、3が2個、 4が1個、5が2個、6が1個、7が1個含まれています」 という文章が生成されるとして、9以下の任意の自然数Nについて もこのような文章を生成するプログラムを作れ。 解がない場合は「解なし」とする。 発展問題: Nが10以上の時、解はあるだろうか?
872 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:28:43 ] 一応自分の答え(うろ覚え)さらしとく X = 8 S = ["" for i in range(X)] found = False def count(num): ret = 0 for i in S: ret += i.count(str(num)) return ret def check(): for i in range(X): if count(i)+1 != int(s[i]): return found = True print "数字の数は", [str(i)+"が"+str(s[i])+"個" for i in range(X)] def find(depth): if depth < 0: check() else: for i in range(X): s[depth] = i find(depth - 1) if not found: print "解なし" print "終了" find(X-1)
873 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:47:48 ] ごめん、問題の意味がわからない
874 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:53:15 ] 短くしようとしたら総当りになると思う。 それよりもスマートな解き方を探すほうが面白そうだな
875 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 02:58:37 ] >発展問題: >Nが10以上の時、解はあるだろうか? 10がn個あります、と言った時の意味がわからない
876 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:01:55 ] どっかの課題丸投げ乙
877 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:07:32 ] 変数Nは「」内に影響しないため、Nがどのような値でも 「この文章には0が1個、1が5個、2が3個、3が2個、 4が1個、5が2個、6が1個、7が1個含まれています」 という文章が生成されます。
878 名前:871 mailto:sage [2008/03/25(火) 03:19:09 ] 丸投げじゃないよ。今日仕事中に思いついた問題。 ちなみにNが4のときの解。ようするに N 以上の数を使わない。 「0が1個、1が2個、2が3個、3が2個」 Nが10のときは "10" という部分文字列がいくつ含まれるかって解釈にしようと思う。
879 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 03:57:45 ] 0-2 1-8 2-3 3-3 4-1 5-1 6-1 7-1 8-2 9-1 10-1
880 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:57:56 ] ドウカクカクカク。
881 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 10:34:00 ] ブラック民パイ読んで、練習でHP作ってるんだけどさあ・・・・HTMLのテンプレートを簡単につくるソフトでいいのってないの? ホームページビルダー(バージョンふるいのしか持ってない)で作って、置き換え文字を書き加えるとかじゃ・・・・ちょっと使いづらいぜ。
882 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 10:43:31 ] >>881 HTMLかくんだったら、テキストエディタでおk。 入力補助がついてるのもあるし、なんだったらメモ帳やワードパッドでもいける。
883 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:31:43 ] >>871 が基地外にしか見えない
884 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:41:05 ] >881 Nvu nvudev.com/
885 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:42:58 ] >>883 >>871 が見えるおまえは基地外認定
886 名前:866 mailto:sage [2008/03/25(火) 12:03:30 ] >>866-867 ないのならmaximaのあるcommon lispに乗り換えを決意した
887 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 13:45:09 ] お昼に見てからやっと >>871 の意味が分かったわ ちょっと仕事の合間に考えて見るか
888 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 19:05:30 ] >>871 をN<=10(二桁にならない)までで高速化してみた codepad.org/m5o71GS1
889 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 20:54:01 ] C++は老害言語。
890 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:00:41 ] >>884 Nvuは開発止まってるから後継ソフトにしようね KompoZer: kompozer.net/
891 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:21:00 ] 回転座標求めるのに def rot(x, y, radian): c = math.cos(radian) s = math.sin(radian) return x*c - y*s, x*s + y*c と def rot(x, y, radian): return math.hypot(x, y) * cmath.exp(radian*1j) の速度を比べてみると、明らかに複素数使った方が速い。。。が X, Y成分を取り出す処理を入れると結局始めから三角関数使った方が速い。なんかくやしい。
892 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:48:33 ] x,yはc.real と c.imag で取り出してる?
893 名前:891 mailto:sage [2008/03/26(水) 00:16:01 ] >>892 ttp://codepad.org/e53Ole56 あれ? デスクトップでやった時と結果が違う。。。。