【Pythonスレッド基本ルール】
1:問題文は自己省略せずに、直接全部貼り付けてください。
2:課題の「丸投げ」が最も好ましい提示法です。なるべく丸投げしてください。
3:数学問題は「○×法でせよ」だけでなく、その数式、前提条件も説明してください。
4:課題&宿題関連の質問はOKですが、それ以外の一般的な質問は禁止です。
5:もし回答プログラムがアップされたら、その返答と動作報告をお願いします。
【課題提示用テンプレ】
【 課題 】与えられた課題文をそのまま書きます 《必須》
【 用語 】数学用語、専門用語の意味、説明を書きます 《あれば必須》
【 期限 】提出期限、解答希望日があれば書きます
【 Ver 】希望するPythonバージョンがあれば書きます(必要があればOSも)
【 補足 】課題について自分なりに補足する事、何か思う事があれば書きます。
丸投げでない場合は、途中までのソースとその経過報告、
質問点、疑問点を書きます(なるべく丸投げにしてください)
【回答プログラムの掲載場所】
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi
前スレ
http://pc12.2ch.net/test/read.cgi/tech/1153585095/
探検
Python の宿題ここで答えます Part 2
■ このスレッドは過去ログ倉庫に格納されています
2009/11/16(月) 06:27:36
251デフォルトの名無しさん
2011/03/02(水) 01:13:16.28252デフォルトの名無しさん
2011/03/02(水) 02:04:24.48 初心者なのですが勉強で>>247をやってみようと思って、
以下のコードを書いたのですが、タプルを返してるつもりが、
19をはじめ、ところどころNoneで返ってきてしまいます。
returnするまではtupleなのですが、returnするとNoneになるようです。
すみませんが、なぜか教えていただけますでしょうか。
def f(x, count):
y = int(str(x)[::-1])
z = x + y
if z == int(str(z)[::-1]) :
return (z, count)
else :
f(z, count + 1)
if __name__ == '__main__' :
for i in range(10, 99) :
print type(f(i, 1))
以下のコードを書いたのですが、タプルを返してるつもりが、
19をはじめ、ところどころNoneで返ってきてしまいます。
returnするまではtupleなのですが、returnするとNoneになるようです。
すみませんが、なぜか教えていただけますでしょうか。
def f(x, count):
y = int(str(x)[::-1])
z = x + y
if z == int(str(z)[::-1]) :
return (z, count)
else :
f(z, count + 1)
if __name__ == '__main__' :
for i in range(10, 99) :
print type(f(i, 1))
253デフォルトの名無しさん
2011/03/02(水) 02:08:52.72 >>252
else: の後をよく見てみよう。
else: の後をよく見てみよう。
254デフォルトの名無しさん
2011/03/02(水) 02:12:23.22 return がなかったです…。ありがとうございます。これで寝られます。
255デフォルトの名無しさん
2011/03/04(金) 18:30:06.95 ベストアンサーまだですか?
256デフォルトの名無しさん
2011/03/05(土) 21:50:19.02 回文数を先に抜き出して、そこから足し合わせじゃなく引き合わせにすれば速くなるか…な
257デフォルトの名無しさん
2011/03/06(日) 18:48:07.22258デフォルトの名無しさん
2011/03/06(日) 19:04:24.47259デフォルトの名無しさん
2011/03/06(日) 20:04:42.97 >>258
であれば、ひっくり返した数が100未満ならその時点で除外できなくね?
であれば、ひっくり返した数が100未満ならその時点で除外できなくね?
260デフォルトの名無しさん
2011/03/06(日) 20:38:31.99 >>259
そう思う。
そう思う。
261デフォルトの名無しさん
2011/03/07(月) 08:19:40.19262デフォルトの名無しさん
2011/03/07(月) 08:22:53.77263デフォルトの名無しさん
2011/03/07(月) 14:06:29.17 196
295
394
493
592
689
691
788
790
879
887
978
986
さぁどれだ
295
394
493
592
689
691
788
790
879
887
978
986
さぁどれだ
264デフォルトの名無しさん
2011/03/07(月) 16:12:10.53 ちょっと何言いいたいのか分からないっすね
265デフォルトの名無しさん
2011/03/08(火) 02:39:40.59 ある程度長いのが絞られてきたみたいですね
266デフォルトの名無しさん
2011/03/08(火) 03:04:11.21 ある3桁の数(単数か複数かは不明)が回文数にならないことを証明することは出来ていないんだろうか?
267デフォルトの名無しさん
2011/03/08(火) 09:16:55.89 回文数にならないものってどうやって見つけんのよ
268デフォルトの名無しさん
2011/04/25(月) 20:07:16.29269268
2011/04/25(月) 20:08:36.16 誤 aを1回操作すると788になるから
正 aを1回操作すると887になるから
正 aを1回操作すると887になるから
270デフォルトの名無しさん
2011/04/26(火) 01:30:26.68 http://en.wikipedia.org/wiki/Lychrel_number
でぐぐったら、結構出てくるなぁ。
でぐぐったら、結構出てくるなぁ。
271デフォルトの名無しさん
2011/04/27(水) 17:55:15.88 >>267
少なくとも判定は出来ると思う
3桁の数なら
「回文数になる」
「回文数になる前に(おおざっぱに)1000個の数字がすべて出てくる」
「1000個出てこなくてもどこかで同じ数字が出てきて循環する」
のどれかになるんじゃないかな
少なくとも判定は出来ると思う
3桁の数なら
「回文数になる」
「回文数になる前に(おおざっぱに)1000個の数字がすべて出てくる」
「1000個出てこなくてもどこかで同じ数字が出てきて循環する」
のどれかになるんじゃないかな
272デフォルトの名無しさん
2011/04/27(水) 19:16:53.31273デフォルトの名無しさん
2011/04/27(水) 20:12:16.88274デフォルトの名無しさん
2011/04/28(木) 01:13:33.28 ロングパス入りました。
275デフォルトの名無しさん
2011/04/28(木) 01:21:22.71 >>372
世の中には、勘違いしてても気づかない奴もいるって事よ。
世の中には、勘違いしてても気づかない奴もいるって事よ。
276デフォルトの名無しさん
2011/04/29(金) 20:53:12.21 ゴールドバッハの予想
与えられた値を2つの素数の和で現してください
verは出来れば2.6で
エラトステネスのふるいを用いた素数リストを使って値を出すようにしてください
お願いします
与えられた値を2つの素数の和で現してください
verは出来れば2.6で
エラトステネスのふるいを用いた素数リストを使って値を出すようにしてください
お願いします
277デフォルトの名無しさん
2011/04/30(土) 00:48:17.11 >>276
n = int(raw_input())
def get_primes(n):
ary = [0 for i in range(n+1)]
primes = []
i = 2
while i <= n:
if not ary[i]:
primes.append(i)
j = i
while j <= n:
ary[j] = 1
j += i
i += 1
return primes
primes = get_primes(n)
for p in primes:
if n - p in primes:
print p, n - p
n = int(raw_input())
def get_primes(n):
ary = [0 for i in range(n+1)]
primes = []
i = 2
while i <= n:
if not ary[i]:
primes.append(i)
j = i
while j <= n:
ary[j] = 1
j += i
i += 1
return primes
primes = get_primes(n)
for p in primes:
if n - p in primes:
print p, n - p
278デフォルトの名無しさん
2011/04/30(土) 06:55:17.50279デフォルトの名無しさん
2011/06/02(木) 06:22:08.84 日本の大学とかでPythonの宿題がでる(Python使って教えている)ところって多いの?
280デフォルトの名無しさん
2011/06/02(木) 17:55:17.03 The university of second channel
281デフォルトの名無しさん
2011/06/14(火) 19:57:57.72 カーニハンの『プログラミング作法』の3章に出てくる、マルコフ連鎖の
Perl版の奴をPythonに移植したいんのですが、データ構造をどう実装すれば
いいのかよくわかりません。
英文を読み込んで、単語1、単語2という組み合わせを読み込み、その後に
付く単語をsuffixとして記憶する(複数の場合にはチェインする)というもの
です。
読み込み部分のソースはこんな感じです。
>$NONWORD = "\n";
>$w1 = $w2 = $NONWORD; #initial state
>while (<>) { # read each line of input
> foreach (split) {
> push(@{$statetab{$w1}{$w2}}, $_);
> ($w1, $w2) = ($w2, $_); #multiple assignment
> }
>}
push(@{$statetab{$w1}{$w2}}, $NONWORD); # add tail
たとえばRubyに移植するとこんな感じになると思います。
>statetab = Hash.new{|h,k| h[k] = Hash.new{|h2,k2| h2[k2]= []}}
中略
> statetab[w1][w2].push(word)
Pythonでもこういうハッシュ+リストみたいなのを実現するにはどうやれば
いいでしょうか?
Perl版の奴をPythonに移植したいんのですが、データ構造をどう実装すれば
いいのかよくわかりません。
英文を読み込んで、単語1、単語2という組み合わせを読み込み、その後に
付く単語をsuffixとして記憶する(複数の場合にはチェインする)というもの
です。
読み込み部分のソースはこんな感じです。
>$NONWORD = "\n";
>$w1 = $w2 = $NONWORD; #initial state
>while (<>) { # read each line of input
> foreach (split) {
> push(@{$statetab{$w1}{$w2}}, $_);
> ($w1, $w2) = ($w2, $_); #multiple assignment
> }
>}
push(@{$statetab{$w1}{$w2}}, $NONWORD); # add tail
たとえばRubyに移植するとこんな感じになると思います。
>statetab = Hash.new{|h,k| h[k] = Hash.new{|h2,k2| h2[k2]= []}}
中略
> statetab[w1][w2].push(word)
Pythonでもこういうハッシュ+リストみたいなのを実現するにはどうやれば
いいでしょうか?
282デフォルトの名無しさん
2011/06/14(火) 20:37:04.18 >>281
In [1]: from collections import defaultdict
In [2]: d = defaultdict(lambda: defaultdict(list))
In [3]: d['w']['x'].append('z')
In [4]: d
Out[4]: defaultdict(<function <lambda> at 0x12c7488>, {'w': defaultdict(<type 'list'>, {'x': ['z']})})
statetab[(w1, w2)] みたいに、1階層で単語のタプルをキーにすることもできるね。
In [1]: from collections import defaultdict
In [2]: d = defaultdict(lambda: defaultdict(list))
In [3]: d['w']['x'].append('z')
In [4]: d
Out[4]: defaultdict(<function <lambda> at 0x12c7488>, {'w': defaultdict(<type 'list'>, {'x': ['z']})})
statetab[(w1, w2)] みたいに、1階層で単語のタプルをキーにすることもできるね。
283デフォルトの名無しさん
2011/06/14(火) 21:16:40.59284デフォルトの名無しさん
2011/08/01(月) 21:52:27.42 テキストファイル、複数キー、ソートで検索したところ、下記のソースを見つけました。
しかし、lines.sort(cmp=lambda 〜 の 行の意味が解かりません。
lambda式がcmpに代入されている意味。
後半に出てくるcmpと先頭のcmpは、同じcmp関数?
コラム指定された部分がx,yに代入されて比較されている、と思うのですが、
これをsortに渡すとファイル全体がソートされる動作が想像できません。
解説をお願いいたします。
# filesort.py
# coding:shift_jis
# ファイルのSORT
import string
import time
from datetime import datetime
startTime = time.clock()
print datetime.today().strftime("%Y年%m月%d日 %H時%M時%S秒 処理開始")
fr = open("C:/in.txt", "r") # 入力ファイル
fw = open("C:/out.txt", "w") # 出力ファイル
lines = fr.readlines()
cnt = len(lines)
# SORT ソート位置を変更するときは下記行を修正。
# ソートキーは複数指定していて、11カラムから5桁と1カラムから9桁です。
lines.sort(cmp=lambda x,y: cmp(str(x)[10:15]+str(x)[0:9], str(y)[10:15]+str(y)[0:9]))
fw.writelines(lines)
fr.close()
fw.close()
# 終了メッセージ
print datetime.today().strftime("%Y年%m月%d日 %H時%M時%S秒 処理終了")
print cnt, '件を', time.clock() - startTime, '秒で処理しました。'
print '何かキーを押せば終了します。'
raw_input()
しかし、lines.sort(cmp=lambda 〜 の 行の意味が解かりません。
lambda式がcmpに代入されている意味。
後半に出てくるcmpと先頭のcmpは、同じcmp関数?
コラム指定された部分がx,yに代入されて比較されている、と思うのですが、
これをsortに渡すとファイル全体がソートされる動作が想像できません。
解説をお願いいたします。
# filesort.py
# coding:shift_jis
# ファイルのSORT
import string
import time
from datetime import datetime
startTime = time.clock()
print datetime.today().strftime("%Y年%m月%d日 %H時%M時%S秒 処理開始")
fr = open("C:/in.txt", "r") # 入力ファイル
fw = open("C:/out.txt", "w") # 出力ファイル
lines = fr.readlines()
cnt = len(lines)
# SORT ソート位置を変更するときは下記行を修正。
# ソートキーは複数指定していて、11カラムから5桁と1カラムから9桁です。
lines.sort(cmp=lambda x,y: cmp(str(x)[10:15]+str(x)[0:9], str(y)[10:15]+str(y)[0:9]))
fw.writelines(lines)
fr.close()
fw.close()
# 終了メッセージ
print datetime.today().strftime("%Y年%m月%d日 %H時%M時%S秒 処理終了")
print cnt, '件を', time.clock() - startTime, '秒で処理しました。'
print '何かキーを押せば終了します。'
raw_input()
285デフォルトの名無しさん
2011/08/01(月) 22:01:30.90 >しかし、lines.sort(cmp=lambda 〜 の 行の意味が解かりません。
名前付き引数
名前付き引数
286デフォルトの名無しさん
2011/08/03(水) 18:11:59.06 285です。
先のcmpはsort()の名前付き引数、後のcmpはcmp関数、という事は解かりました。
ですが、やはり、ファイル全体がソートされる動作が想像できません。
先のcmpはsort()の名前付き引数、後のcmpはcmp関数、という事は解かりました。
ですが、やはり、ファイル全体がソートされる動作が想像できません。
287デフォルトの名無しさん
2011/08/03(水) 18:13:27.10 286 です。 >285です。 は、284の間違いでした。
288デフォルトの名無しさん
2011/08/03(水) 19:31:32.77 了解
289デフォルトの名無しさん
2011/08/03(水) 21:03:18.52 >>286
sort()の中でリストの要素同士の大小比較をするときに、cmp引数で指定された比較関数を呼び出して
比較しているから、cmp引数でソートの挙動をカスタマイズできるんだよ。
文字列全体じゃなくて一部分だけを比較のキーにする、みたいに。
ちなみにcmp引数に何も指定しないと、要素そのものをキーとして組み込み関数のcmp関数を呼ぶ。
sort()の中でリストの要素同士の大小比較をするときに、cmp引数で指定された比較関数を呼び出して
比較しているから、cmp引数でソートの挙動をカスタマイズできるんだよ。
文字列全体じゃなくて一部分だけを比較のキーにする、みたいに。
ちなみにcmp引数に何も指定しないと、要素そのものをキーとして組み込み関数のcmp関数を呼ぶ。
290289
2011/08/03(水) 21:07:06.99 補足しておくと、昔はともかく今のPythonでこんなげろんちょな比較関数を書く必要は無い。
sort()にkey引数ってのが導入されて、リストの要素からソートキーを得る関数を指定できる。
もちろん、指摘しなければリストの要素がそのままソートキーになるんだけど。
つまり>>286と全く同じことを
lines.sort(key = lambda x: x[10:15] + x[0:9])
と書ける。
sort()にkey引数ってのが導入されて、リストの要素からソートキーを得る関数を指定できる。
もちろん、指摘しなければリストの要素がそのままソートキーになるんだけど。
つまり>>286と全く同じことを
lines.sort(key = lambda x: x[10:15] + x[0:9])
と書ける。
291286
2011/08/04(木) 17:36:23.52292デフォルトの名無しさん
2011/10/04(火) 08:58:36.28  ̄( ̄( ̄(A ∩ B) ∩ A) ∩  ̄( ̄(A ∩ B) ∩ B))
293デフォルトの名無しさん
2011/11/03(木) 17:32:29.90 宿題誰か作って下さい><お願いします!
C:\Users\workspace\pythonというディレクトリの中に
下の画像のように、pythonファイルとテキストファイルが存在するとします。
@http://up3.viploader.net/ippan/src/vlippan243126.jpg(Python実行前)
【それぞれのテキストファイルの中には、変数にpathを代入するような記述が書いてあります
必ずしも、1行目と2行目にpath1,path2の変数があるとは限りません。】
Ahttp://viploader.net/ippan/src/vlippan243130.jpg(Python実行後)
pythonファイルを実行すると、
pythonがあるディレクトリと同ディレクトリの全てのテキスト形式ファイル(test1.test2,test3,test4)内にある
path1、path2に格納されている文字列を画像Aのように置き換えたいです。
C:\Users\workspace\pythonというディレクトリの中に
下の画像のように、pythonファイルとテキストファイルが存在するとします。
@http://up3.viploader.net/ippan/src/vlippan243126.jpg(Python実行前)
【それぞれのテキストファイルの中には、変数にpathを代入するような記述が書いてあります
必ずしも、1行目と2行目にpath1,path2の変数があるとは限りません。】
Ahttp://viploader.net/ippan/src/vlippan243130.jpg(Python実行後)
pythonファイルを実行すると、
pythonがあるディレクトリと同ディレクトリの全てのテキスト形式ファイル(test1.test2,test3,test4)内にある
path1、path2に格納されている文字列を画像Aのように置き換えたいです。
294デフォルトの名無しさん
2011/11/03(木) 19:13:43.01 for i in range(1, 5):
with open('test{}.txt'.format(i), 'r+') as fp:
d = fp.read().replace(r'C:\aaa\aaa\aaa\aaa', r'C:\Users\workspace\python').replace(r'C:\iii\iii\iii\iii', r'C:\Users\workspace')
fp.seek(0, 0)
fp.truncate()
fp.write(d)
with open('test{}.txt'.format(i), 'r+') as fp:
d = fp.read().replace(r'C:\aaa\aaa\aaa\aaa', r'C:\Users\workspace\python').replace(r'C:\iii\iii\iii\iii', r'C:\Users\workspace')
fp.seek(0, 0)
fp.truncate()
fp.write(d)
295デフォルトの名無しさん
2011/11/04(金) 10:29:57.94 ↑汎用性のないしょぼいプログラム書いてんじゃねえよ死ね!
296デフォルトの名無しさん
2011/11/04(金) 10:58:40.79 宿題の題意には特記事項としての汎用性は求められていませんでしたが
297デフォルトの名無しさん
2011/11/04(金) 12:17:32.01 汎用性のあるコードを>>295が書けば解決
298デフォルトの名無しさん
2011/11/04(金) 12:48:15.42 情報が足りな過ぎる
何がしたいのか判らん
何がしたいのか判らん
299デフォルトの名無しさん
2011/11/17(木) 23:36:18.41 1から10までの整数の順列をすべて表示するプログラムをお願いします。
300299
2011/11/17(木) 23:40:57.76 299です。[1,2,3,4,5..,10]みたいな感じのリストになるようにお願いします。
301デフォルトの名無しさん
2011/11/17(木) 23:44:37.82 print [1,2,3,4,5,6,7,8,9,10]
302デフォルトの名無しさん
2011/11/17(木) 23:59:11.85 何も考えずにlist(itertools.permutations(range(1, 11)))とかしたら危うく
303デフォルトの名無しさん
2011/11/18(金) 00:09:05.17 10!
304299
2011/11/18(金) 00:14:14.86 a = [[0]]
r = 1
while r < 11:
cl = []
for x in range(len(a)):
for y in range(len(a[0])):
a[x][y] = a[x][y] + 1
for x in range(len(a)):
for y in range(len(a[0])+1):
cl.append(a[x][0:y] + [0] + a[x][y:len(a)])
初めて書いたコードが動いただけで満足してたんですが2行で済んでしまうとは驚きです。また勉強します。ありがとうございます
r = 1
while r < 11:
cl = []
for x in range(len(a)):
for y in range(len(a[0])):
a[x][y] = a[x][y] + 1
for x in range(len(a)):
for y in range(len(a[0])+1):
cl.append(a[x][0:y] + [0] + a[x][y:len(a)])
初めて書いたコードが動いただけで満足してたんですが2行で済んでしまうとは驚きです。また勉強します。ありがとうございます
305デフォルトの名無しさん
2011/11/18(金) 06:42:14.78 馬鹿には無理
306デフォルトの名無しさん
2011/11/18(金) 23:51:58.32 馬鹿には向いてないぞ
307デフォルトの名無しさん
2011/11/19(土) 10:46:00.70 http://scan.netsecurity.ne.jp/article/img/2011/11/13/27625/93.html
tokuhirom、ma.la?っていう人の話だけ聞きたい
色々なスレで見かけるけどWEB業界で有名らしいね
動画ありませんか?
tokuhirom、ma.la?っていう人の話だけ聞きたい
色々なスレで見かけるけどWEB業界で有名らしいね
動画ありませんか?
2012/04/07(土) 10:43:20.79
・1から2000までの数字が昇順に格納された
要素2000個の配列を用意
・乱数にて1から2000までのキー値を生成し、
上記配列を二分探索で探索してキー値を見つけるまでの
探索回数を記録
・以上を1000回繰り返し、平均探索回数を算出
・上記の平均探索回数を、理論値log2・2000と比較して示せ
という宿題を出されたのですが、まるでわかりません。
よろしくお願いします。
要素2000個の配列を用意
・乱数にて1から2000までのキー値を生成し、
上記配列を二分探索で探索してキー値を見つけるまでの
探索回数を記録
・以上を1000回繰り返し、平均探索回数を算出
・上記の平均探索回数を、理論値log2・2000と比較して示せ
という宿題を出されたのですが、まるでわかりません。
よろしくお願いします。
2012/04/07(土) 15:28:54.07
二分探索なんかしなくても
すぐ見つかるんじゃね?
すぐ見つかるんじゃね?
2012/04/07(土) 23:23:05.10
311308
2012/04/08(日) 01:03:06.69 自力で(というか、入門書とWEBを漁りまくって)
12時間かけて何とかできました。疲れた…
要素数と試行回数を指定できるように作ったので
よければ遊んでみてください。
http://codepad.org/RaKvygkr
12時間かけて何とかできました。疲れた…
要素数と試行回数を指定できるように作ったので
よければ遊んでみてください。
http://codepad.org/RaKvygkr
312営利利用に関するLR審議中@詳細は自治スレへ
2012/04/08(日) 11:12:00.89 いやです
313デフォルトの名無しさん
2012/04/15(日) 23:15:02.68 >>311
The resource could not be found.
The resource could not be found.
314308
2012/04/16(月) 00:23:02.09 あやー
見てくれる人いたんですか。
あれからちょこちょこいじっているので
URL変わっちゃってます。
http://codepad.org/oX8W6350
しかし、こうして探索している様子がわかると面白いですね。
こんな半分ずつ探索範囲を狭めていくやり方で
漏れなく見つかるんだって感動する。
見てくれる人いたんですか。
あれからちょこちょこいじっているので
URL変わっちゃってます。
http://codepad.org/oX8W6350
しかし、こうして探索している様子がわかると面白いですね。
こんな半分ずつ探索範囲を狭めていくやり方で
漏れなく見つかるんだって感動する。
315デフォルトの名無しさん
2012/05/22(火) 17:40:11.37 import sys
import random
import string
import ctypes
if __name__ == '__main__':
class CONSOLE_SCREEN_BUFFER_INFO(ctypes.Structure):
_fields_ = [
('w', ctypes.c_short), ('h', ctypes.c_short),
('x', ctypes.c_short), ('y', ctypes.c_short),
('a', ctypes.c_int),
('l', ctypes.c_short), ('t', ctypes.c_short),
('r', ctypes.c_short), ('b', ctypes.c_short),
('maxw', ctypes.c_short), ('maxh', ctypes.c_short)]
h = ctypes.windll.kernel32.GetStdHandle(-11)
b = CONSOLE_SCREEN_BUFFER_INFO()
ctypes.windll.kernel32.GetConsoleScreenBufferInfo(h, ctypes.byref(b))
ctypes.windll.kernel32.SetConsoleTextAttribute(h, 10)
chrs = string.ascii_letters + string.digits + string.punctuation
chrs += ' ' * len(chrs)
sz = len(chrs)
try:
while True: sys.stdout.write(chrs[random.randint(0, sz - 1)])
finally:
ctypes.windll.kernel32.SetConsoleTextAttribute(h, b.a)
import random
import string
import ctypes
if __name__ == '__main__':
class CONSOLE_SCREEN_BUFFER_INFO(ctypes.Structure):
_fields_ = [
('w', ctypes.c_short), ('h', ctypes.c_short),
('x', ctypes.c_short), ('y', ctypes.c_short),
('a', ctypes.c_int),
('l', ctypes.c_short), ('t', ctypes.c_short),
('r', ctypes.c_short), ('b', ctypes.c_short),
('maxw', ctypes.c_short), ('maxh', ctypes.c_short)]
h = ctypes.windll.kernel32.GetStdHandle(-11)
b = CONSOLE_SCREEN_BUFFER_INFO()
ctypes.windll.kernel32.GetConsoleScreenBufferInfo(h, ctypes.byref(b))
ctypes.windll.kernel32.SetConsoleTextAttribute(h, 10)
chrs = string.ascii_letters + string.digits + string.punctuation
chrs += ' ' * len(chrs)
sz = len(chrs)
try:
while True: sys.stdout.write(chrs[random.randint(0, sz - 1)])
finally:
ctypes.windll.kernel32.SetConsoleTextAttribute(h, b.a)
316デフォルトの名無しさん
2012/05/22(火) 22:56:27.95 |....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
|_::;; ~"'ヽ
| //^''ヽ,,)
| i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
|( ´∀`) < きのこ のこーのこ げんきのこ ♪
|(ノ |つ
| |
⊂ _ ノ
""U
_,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
(´∀` )| < エリンギ まいたけ ブナシメジ ♪
⊂| (ノ |
| |
ヽ _ ⊃
.U""
|
| ミ
| ミ サッ!
| ミ
|
317デフォルトの名無しさん
2012/05/22(火) 23:07:06.98 if __name__いらねえだろ
318uy
2012/05/23(水) 12:04:58.26 range(1, 5)
これがPythonはダメだよな
これがPythonはダメだよな
319デフォルトの名無しさん
2012/05/23(水) 14:05:49.87 xrangeの話?区間の話?
320デフォルトの名無しさん
2012/05/25(金) 03:15:13.85 >>317
学校で先生が付けろって言ってたので
学校で先生が付けろって言ってたので
321デフォルトの名無しさん
2012/05/25(金) 13:10:11.20 if __main__ にロジックを大量に書くとデバッグしにくくなるからやめなさい。
代わりに何か適当な関数を作って、ロジックはその中に置く。
if __main__ にはその関数への呼び出しを書いておけばいい。
http://www.artima.com/weblogs/viewpost.jsp?thread=4829
代わりに何か適当な関数を作って、ロジックはその中に置く。
if __main__ にはその関数への呼び出しを書いておけばいい。
http://www.artima.com/weblogs/viewpost.jsp?thread=4829
322デフォルトの名無しさん
2012/05/25(金) 13:21:42.92 import sys
import random
import string
import ctypes
class CONSOLE_SCREEN_BUFFER_INFO(ctypes.Structure):
_fields_ = [
('w', ctypes.c_short), ('h', ctypes.c_short),
('x', ctypes.c_short), ('y', ctypes.c_short),
('a', ctypes.c_int),
('l', ctypes.c_short), ('t', ctypes.c_short),
('r', ctypes.c_short), ('b', ctypes.c_short),
('maxw', ctypes.c_short), ('maxh', ctypes.c_short)]
def main():
h = ctypes.windll.kernel32.GetStdHandle(-11)
b = CONSOLE_SCREEN_BUFFER_INFO()
ctypes.windll.kernel32.GetConsoleScreenBufferInfo(h, ctypes.byref(b))
ctypes.windll.kernel32.SetConsoleTextAttribute(h, 10)
chrs = string.ascii_letters + string.digits + string.punctuation
chrs += ' ' * len(chrs)
sz = len(chrs)
try:
while True: sys.stdout.write(chrs[random.randint(0, sz - 1)])
finally:
ctypes.windll.kernel32.SetConsoleTextAttribute(h, b.a)
if __name__ == '__main__':
main()
import random
import string
import ctypes
class CONSOLE_SCREEN_BUFFER_INFO(ctypes.Structure):
_fields_ = [
('w', ctypes.c_short), ('h', ctypes.c_short),
('x', ctypes.c_short), ('y', ctypes.c_short),
('a', ctypes.c_int),
('l', ctypes.c_short), ('t', ctypes.c_short),
('r', ctypes.c_short), ('b', ctypes.c_short),
('maxw', ctypes.c_short), ('maxh', ctypes.c_short)]
def main():
h = ctypes.windll.kernel32.GetStdHandle(-11)
b = CONSOLE_SCREEN_BUFFER_INFO()
ctypes.windll.kernel32.GetConsoleScreenBufferInfo(h, ctypes.byref(b))
ctypes.windll.kernel32.SetConsoleTextAttribute(h, 10)
chrs = string.ascii_letters + string.digits + string.punctuation
chrs += ' ' * len(chrs)
sz = len(chrs)
try:
while True: sys.stdout.write(chrs[random.randint(0, sz - 1)])
finally:
ctypes.windll.kernel32.SetConsoleTextAttribute(h, b.a)
if __name__ == '__main__':
main()
323デフォルトの名無しさん
2012/05/25(金) 16:07:49.09 ttp://python.matrix.jp/projects/wxPython/found_ide/
324デフォルトの名無しさん
2012/07/07(土) 00:34:01.11 [1] 授業単元:QRコード変換
[2] 問題文:
打ち込んだテキストデータをQRコードの画像に変換するプログラムを作成せよ.
(QRコードの規格は公開されているので,それを組み合わせて作ればよい.
エラー訂正レベルを下げ,文字数を固定するなどして簡単なものから順に実装していけば良い.)
[3] 環境
[3.1] OS: Windows 7
[3.2] 言語とバージョン: Python 2.5 以上
[4] 期限: 7/7
宜しくお願いします。
[2] 問題文:
打ち込んだテキストデータをQRコードの画像に変換するプログラムを作成せよ.
(QRコードの規格は公開されているので,それを組み合わせて作ればよい.
エラー訂正レベルを下げ,文字数を固定するなどして簡単なものから順に実装していけば良い.)
[3] 環境
[3.1] OS: Windows 7
[3.2] 言語とバージョン: Python 2.5 以上
[4] 期限: 7/7
宜しくお願いします。
325デフォルトの名無しさん
2012/07/07(土) 05:03:57.89326デフォルトの名無しさん
2012/07/07(土) 05:39:08.99 できました。
ありがとうございました。
ありがとうございました。
327デフォルトの名無しさん
2012/09/17(月) 23:35:22.14 perlでの
use strict;
機能をpythonでも実装せよ
どうやるの?
use strict;
機能をpythonでも実装せよ
どうやるの?
328デフォルトの名無しさん
2012/09/18(火) 00:12:51.82329デフォルトの名無しさん
2012/09/18(火) 00:16:02.53330デフォルトの名無しさん
2012/09/18(火) 00:51:59.75 自分の経験では
color = green
if status != good:
colour = red
display(status, color)
みたいなのを書いて、えらい目にあったことがある。
動的すぎるのも考えものだわ。
strict とブロックスコープ、あと無名関数は Perl のほうがいいね。
color = green
if status != good:
colour = red
display(status, color)
みたいなのを書いて、えらい目にあったことがある。
動的すぎるのも考えものだわ。
strict とブロックスコープ、あと無名関数は Perl のほうがいいね。
331デフォルトの名無しさん
2012/09/18(火) 06:18:48.45 ダックタイピングが良いんじゃん
332デフォルトの名無しさん
2012/10/02(火) 14:11:25.19 以下の宿題が出ました。
いわゆる石取りゲームhttp://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A0
と同じ種類の問題だということはわかるのですが、このゲームの法則と
それをPythonで表現する方法がまるでわかりません。
どなたか、ご回答をいただければありがたいです。
[1] 授業単元:プログラミング入門
[2] 問題文:
2人のプレイヤーが以下のルールでゲームをする。
このゲームは、二人零和有限確定完全情報ゲームである。
任意の数字Nに対し、先手と後手のどちらが勝つかを判定するプログラムを
再帰を使用して作成せよ。
1 初期値Xが与えられる。
2 先手と後手は、交互にAかBのどちらかの方法を選び、Xを減少させていく。
A.Xから1を引く
B.Xを2で割る
3 自分のターンで自分が減少させた結果、Xnが1を下回ってしまったプレイヤーがゲームに負ける。
[3] 環境
[3.1] バージョン: Python3
[3.2] 言語: Python
[4] 期限:10月3日AM6:00
[5] その他の制限:特になし
いわゆる石取りゲームhttp://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A0
と同じ種類の問題だということはわかるのですが、このゲームの法則と
それをPythonで表現する方法がまるでわかりません。
どなたか、ご回答をいただければありがたいです。
[1] 授業単元:プログラミング入門
[2] 問題文:
2人のプレイヤーが以下のルールでゲームをする。
このゲームは、二人零和有限確定完全情報ゲームである。
任意の数字Nに対し、先手と後手のどちらが勝つかを判定するプログラムを
再帰を使用して作成せよ。
1 初期値Xが与えられる。
2 先手と後手は、交互にAかBのどちらかの方法を選び、Xを減少させていく。
A.Xから1を引く
B.Xを2で割る
3 自分のターンで自分が減少させた結果、Xnが1を下回ってしまったプレイヤーがゲームに負ける。
[3] 環境
[3.1] バージョン: Python3
[3.2] 言語: Python
[4] 期限:10月3日AM6:00
[5] その他の制限:特になし
333デフォルトの名無しさん
2012/10/02(火) 14:39:49.45334デフォルトの名無しさん
2012/10/02(火) 14:59:24.96 Xが奇数のときBは禁止?
335332
2012/10/02(火) 15:07:27.09336デフォルトの名無しさん
2012/10/02(火) 15:16:38.32 >任意の数字Nに対し
任意の数字Xに対し
の間違いじゃない?
任意の数字Xに対し
の間違いじゃない?
337332
2012/10/02(火) 15:23:36.20 補足をさせてください。
例えば、N=5のとき、ありうる選択肢として以下の5パターンがありますが、
先手は<>の選択をすると負けてしまいますので、必ずイかウの勝利のパターンとなるように行動します。
したがって、N=5のときは先手が勝ちが決まっているということになります。
ア 先手Aで4、後手Aで3、先手<Aで2>、後手AでもBでも1、先手AでもBでも0.5<1 先手の負け
イ 先手Aで4、後手Aで3、先手Bで1.5、後手AでもBでも(0.5,0.75)<1 後手の負け
ウ 先手Aで4、後手Bで2、先手AでもBでも1、後手AでもBでも0.5<1 後手の負け
エ 先手<Bで2.5>、後手Aで1.5、先手はAでもBでも(0.5,0.75)<1 先手の負け
オ 先手<Bで2.5>、後手Bで1.25、先手はAでもBでも(0.25,0.6125)<1 先手の負け
>>336
Xの間違いです。すみません。。
例えば、N=5のとき、ありうる選択肢として以下の5パターンがありますが、
先手は<>の選択をすると負けてしまいますので、必ずイかウの勝利のパターンとなるように行動します。
したがって、N=5のときは先手が勝ちが決まっているということになります。
ア 先手Aで4、後手Aで3、先手<Aで2>、後手AでもBでも1、先手AでもBでも0.5<1 先手の負け
イ 先手Aで4、後手Aで3、先手Bで1.5、後手AでもBでも(0.5,0.75)<1 後手の負け
ウ 先手Aで4、後手Bで2、先手AでもBでも1、後手AでもBでも0.5<1 後手の負け
エ 先手<Bで2.5>、後手Aで1.5、先手はAでもBでも(0.5,0.75)<1 先手の負け
オ 先手<Bで2.5>、後手Bで1.25、先手はAでもBでも(0.25,0.6125)<1 先手の負け
>>336
Xの間違いです。すみません。。
338デフォルトの名無しさん
2012/10/02(火) 15:34:22.19 Xの間違いと言いつつN=5とか
ふざけてんの?
ふざけてんの?
340デフォルトの名無しさん
2012/10/05(金) 02:03:33.61 332の問題、期限切れみたいだけど添削お願いしたい
http://ideone.com/sWfE6
(1) 値を減少させる関数と勝敗判定の関数を書き出した
(2) >>337 のパターン ア-オを assert 文で列挙
(3) 判定関数を再帰で実装
http://ideone.com/sWfE6
(1) 値を減少させる関数と勝敗判定の関数を書き出した
(2) >>337 のパターン ア-オを assert 文で列挙
(3) 判定関数を再帰で実装
341デフォルトの名無しさん
2012/10/16(火) 16:42:28.21 pass
342デフォルトの名無しさん
2012/11/15(木) 08:40:52.12 【 課題 】
再帰分割法を利用した迷路作成のプログラムを作ってください。
【 用語 】
再帰分割法
http://en.wikipedia.org/wiki/Maze_generation_algorithm#Recursive_division_method
【 期限 】
2012/11/16まで
【 Ver 】
OS:Windows8
Python2.x
【 補足 】
壁を#、道をスペースで表示してください。
よろしくお願いします。
再帰分割法を利用した迷路作成のプログラムを作ってください。
【 用語 】
再帰分割法
http://en.wikipedia.org/wiki/Maze_generation_algorithm#Recursive_division_method
【 期限 】
2012/11/16まで
【 Ver 】
OS:Windows8
Python2.x
【 補足 】
壁を#、道をスペースで表示してください。
よろしくお願いします。
343デフォルトの名無しさん
2012/11/15(木) 12:35:31.30 Win 8 じゃないと駄目?
344デフォルトの名無しさん
2012/11/15(木) 23:48:12.06 そもそも「再帰分割法を利用した迷路作成」は
解く側から見て
「最初に経路の目星を付け易い」
という欠点があるよ
解く側から見て
「最初に経路の目星を付け易い」
という欠点があるよ
345デフォルトの名無しさん
2013/02/19(火) 13:07:06.40 test
346デフォルトの名無しさん
2013/02/21(木) 12:56:28.81 py.test
347デフォルトの名無しさん
2013/02/24(日) 13:22:23.83 整数(1〜10程度でよい)を入力させ、魔方陣(縦横斜め全方向の和が等しい)の数列を表示せよ。
例にあるハイフンは調整のためであり、表示は無用とする。
入力例 1:
1
出力例 1:
---5---7---3
---1---6---8
---9---2---4
入力例 2:
2
出力例 2:
--13--20--22---4---6
---7--14--16--23---5
---1---8--15--17--24
--25---2---9--11--18
--19--21---3--10--12
よろしくお願いします。
例にあるハイフンは調整のためであり、表示は無用とする。
入力例 1:
1
出力例 1:
---5---7---3
---1---6---8
---9---2---4
入力例 2:
2
出力例 2:
--13--20--22---4---6
---7--14--16--23---5
---1---8--15--17--24
--25---2---9--11--18
--19--21---3--10--12
よろしくお願いします。
348デフォルトの名無しさん
2013/02/24(日) 14:42:04.44 >347
入力が1のときには出力は3x3で
2のときには5x5だとすると
入力がnのときには出力は(2n+1)x(2n+1)でいいのかい?
入力が1のときには出力は3x3で
2のときには5x5だとすると
入力がnのときには出力は(2n+1)x(2n+1)でいいのかい?
349デフォルトの名無しさん
2013/02/24(日) 14:49:52.49 出力例の1が変
350デフォルトの名無しさん
2013/02/24(日) 14:51:19.70351デフォルトの名無しさん
2013/02/24(日) 14:55:30.77 >>347
「斜め」は対角線だけを意味するの?
「斜め」は対角線だけを意味するの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 731部隊の新資料、中国が公開 「日本が細菌戦の罪を自白」と主張 ロシアが引き渡し [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★8 [ぐれ★]
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 【実況】博衣こよりのえちえちダンガンロンパ4🧪
- 女の子と遊びたい
- 00:00:00.000
- 🏡パン🍞つー✌まる👌見え👊😅👊
- 千晴!😡
- 俺のチンコが真っ赤に燃えるぅ!
