X



Python の宿題ここで答えます Part 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2009/11/16(月) 06:27:36
【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/
0002デフォルトの名無しさん
垢版 |
2009/11/16(月) 06:31:21
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
0003デフォルトの名無しさん
垢版 |
2009/11/16(月) 07:14:48
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0004デフォルトの名無しさん
垢版 |
2009/11/16(月) 08:42:25
   ┌─┐
   │●│!おっ  
└─┘っぱ い!い!お おっ  
│●  ぱお│ 
 ( ゚∀゚っぱ! _  ぱい)彡
   └─┤ い

┌─┬⊂彡 ∩
0006デフォルトの名無しさん
垢版 |
2009/11/16(月) 11:26:00
from itertools import ifilter, count
def primes():
g = count(2)
while True:
p = g.next()
yield p
g = ifilter(lambda n, p=p: n % p, g)
def zeta(s):
return reduce(lambda x, y: x * (1 / (1 - p ** -s)), primes(), 1)
0007デフォルトの名無しさん
垢版 |
2009/11/16(月) 22:41:15
from itertools import ifilter, count

def primes():
  g = count(2)
  while True:
    p = g.next()
    yield p
    g = ifilter(lambda n, p=p: n % p, g)

def zeta(s):
  return reduce(lambda x, y: x * (1 / (1 - p ** -s)), primes(), 1)

if __name__ == '__main__:
  for s in range(100):
    print s, zeta(s)
0008デフォルトの名無しさん
垢版 |
2009/11/16(月) 23:48:00
キーボードから自然数を入力すると,その約数をすべて表示するプログラムを書け.

0011デフォルトの名無しさん
垢版 |
2009/11/17(火) 22:20:40
1から20までのすべての整数で割り切れる最小の数を求めるプログラムを書け.

0012デフォルトの名無しさん
垢版 |
2009/11/17(火) 22:30:52
算数に疎いからあれだけど
すぐに答えが出なくて試した奴プギャーとかそんなんじゃないよね?
0014デフォルトの名無しさん
垢版 |
2009/11/18(水) 00:14:48
def factorize(val):
r = {}
while val % 2 == 0 and val >= 4:
r[2] = r.get(2, 0) + 1
val /= 2
odd = 3
while odd < val:
if val % odd == 0:
r[odd] = r.get(odd, 0) + 1
val /= odd
else:
odd += 2
r[val] = r.get(val, 0) + 1
return r

factnum = {}
for i in xrange(1, 20 + 1):
for factor, count in factorize(i).iteritems():
factnum[factor] = max(factnum.get(factor, 0), count)

print reduce(lambda a, b: a * b, [f ** c for (f, c) in factnum.iteritems()])

これで合ってるだろうか...
0015デフォルトの名無しさん
垢版 |
2009/11/18(水) 00:51:14
>>11
def gcd(a,b):
    while a%b:
        a,b=b,a%b
    return b

def lcm(a,b):
    return a*b/gcd(a,b)

def fact(n):
    r=1
    while n>1:
        r=lcm(r,n)
        n-=1
    return r

print fact(20)
0016デフォルトの名無しさん
垢版 |
2009/11/18(水) 00:56:27
>>11,15
ちょっとだけ簡略化。
def gcd(a, b):
    while b:
        a, b = b, a % b
    return a

def lcm(a, b):
    return a * b / gcd(a, b)

def fact(n):
    r = 1
    while n > 1:
        r = lcm(r, n)
        n -= 1
    return r

print fact(20)
0018デフォルトの名無しさん
垢版 |
2009/11/18(水) 19:17:49
初心者過ぎてお恥ずかしいですが、助けてくださいorz
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/helloworld.html
これをやろうとしていますが、「アプリケーションのテスト」のところで、
「次のコマンドで helloworld ディレクトリまでのパスを指定し、Web サーバーを起動します。
google_appengine/dev_appserver.py helloworld/」
からわからなくなりました。
コマンドプロンプトで実行するんでしょうか。
helloworldフォルダをどこにおくべきでしょうか。どう指定するのでしょうか。
よろしくお願いいたしますorz
0020デフォルトの名無しさん
垢版 |
2009/11/19(木) 17:53:23
ある自然数nについて,nの約数のうち,nより小さいものの和がnと一致するとき,nは完全数と呼ばれる.

たとえば,6の約数は 1, 2, 3, 6 であり,

6 = 1 + 2 + 3

なので,6は完全数である.

1000以下のすべての完全数を表示するプログラムを作成せよ.

0021デフォルトの名無しさん
垢版 |
2009/11/19(木) 18:51:57
from itertools import ifilter, count

def divisor(n):
  return set(reduce(lambda x, y: x + y, [[i, n / i] for i in range(2, int(n**.5) + 1) if not (n % i)], []))

def perfectnumber(limit):
  g = count(1)
  while True:
    p = g.next()
    if sum(divisor(p)) + 1 == p: yield p
    if p >= limit: break

if __name__ == '__main__':
  for n in perfectnumber(1000):
    print n

1
6
28
496
0023デフォルトの名無しさん
垢版 |
2009/11/19(木) 18:57:52
def divisors (n):
return [x for x in xrange(1,n+1) if n%x == 0]

def comp_num(n):
return True if n == sum(divisors(n)[:-1]) else False

for n in xrange(1,1001):
if comp_num(n):print n


6
28
496
0024デフォルトの名無しさん
垢版 |
2009/11/19(木) 19:00:14
from itertools import count

def divisor(n):
  return set(reduce(lambda x, y: x + y, [[i, n / i] for i in range(2, int(n**.5) + 1) if not (n % i)], []))

def perfectnumber(limit):
  g = count(2)
  while True:
    p = g.next()
    if sum(divisor(p)) + 1 == p: yield p
    if p >= limit: break

if __name__ == '__main__':
  for n in perfectnumber(1000):
    print n
0025デフォルトの名無しさん
垢版 |
2009/11/19(木) 19:56:12
def comp_num(n):
return True if n == sum(divisors(n)[:-1]) else False



def comp_num(n):
return not bool(n - sum(divisors(n)[:-1]))
0026デフォルトの名無しさん
垢版 |
2009/11/19(木) 20:20:23
1000よりも小さいすべての「3または5の倍数」の合計を計算し,結果を表示するプログラムを作成せよ.
0028デフォルトの名無しさん
垢版 |
2009/11/19(木) 20:44:02
1. キーボードから氏名と電話番号を読み込み,氏名をキー,電話番号を値としてディクショナリに格納する.
2. 氏名として"END"が入力されるまで1.を繰り返す.
3. "END"が入力されたら,ディクショナリの内容を "氏名\t電話番号\n" の形式でファイルに書き出す.
0030デフォルトの名無しさん
垢版 |
2009/11/19(木) 22:17:36
1. 引数nを与えると,nが素数の時はTrueを,素数でないときはFalseを返す関数 prime(n) を定義せよ.
2. 関数 prime(n) を使用して,1000以下の素数をすべて表示するプログラムを書け.見つかった個数も表示すること.

Hint

1. 素数とは,1とその数自身のみを約数に持つ数である(ただし,1を除く).
2. 言い換えると,2からn-1までのいずれでもnが割り切れない場合,nは素数である(ただし,n > 2の場合).
3. または,2からn-1までのいずれか1つでもnを割り切ることができる場合,nは素数ではない(同上).
0031デフォルトの名無しさん
垢版 |
2009/11/19(木) 22:27:51
細かい突っ込みだけど、そこまで定義するなら
単に「数」じゃなくて「自然数」「整数」って言わないとな。
0033デフォルトの名無しさん
垢版 |
2009/11/20(金) 00:00:29
>>30
ちょびっとだけチート。

def prime(n):
    r = []
    for x in range(2, n + 1):
        if not [i for i in r if x % i == 0]:
            r += [x]
        x += 1
    return r[-1] == n, len(r)

print prime(100)
print prime(1000)

cnt = 0
for n in range(2, 1000 + 1):
    if prime(n)[0]:
        cnt += 1
print cnt
0034デフォルトの名無しさん
垢版 |
2009/11/20(金) 01:54:05
リストを引数にとり、
> たとえば ['foo', 'hoge', '@fuga', 'piyo', 'moe', '@hoe']
「@」から始まる文字列の前後でリストを分解して
> ['foo', 'hoge'] ['@fuga', 'piyo', 'moe'] ['@hoe']
新たなリストの要素とし
> [ ['foo', 'hoge'], ['@fuga', 'piyo', 'moe'], ['@hoe'] ]
そのリストを返す関数を定義しなさい。
リストを分解する文字「'@'」は引数で指定できると望ましい。

バージョンは2.5と2.6で動くものをお願いします。
0035デフォルトの名無しさん
垢版 |
2009/11/20(金) 02:05:19
def split_list(seq, m='@'):
 r = []
 t = []
 for i in seq:
  if t and i.startswith(m):
   r.append(t)
   t = []
  t.append(i)
  if t:
   r.append(t)
 return r

print split_list(['foo', 'hoge', '@fuga', 'piyo', 'moe', '@hoe'])
003834
垢版 |
2009/11/20(金) 02:32:45
ありがとうございます!
0039デフォルトの名無しさん
垢版 |
2009/11/20(金) 18:15:24
分数を表現するクラスFractionを定義し,いくつかのインスタンスを生成して表示せよ.

Hint
分子と分母をそれぞれアトリビュートとして持つ
コンストラクタには分子と分母をそれぞれ引数として与える
printすると,"分子/分母"の形で表示されるようにする
たとえば,1/2 や 5/8 など
プログラムは次のような形になる
# 分数クラス
class Fraction(object):
def __init__(...):
// __init__()のコード //

def __str__(self):
// __str__()のコード //

# 1/3を作る
f1 = Fraction(1, 3)
# 2/5を作る
f2 = Fraction(2, 5)
# 表示してみる
print f1, f2
0040デフォルトの名無しさん
垢版 |
2009/11/20(金) 18:21:32
出来ました先生
>>> class Fraction(object):
... def __init__(self, p, q):
... self.p = p
... self.q = q
... def __str__(self):
... return '%d/%d' % (self.p, self.q)
...
>>> f1 = Fraction(1, 3)
>>> f2 = Fraction(2, 5)
>>> print f1, f2
1/3 2/5
0042デフォルトの名無しさん
垢版 |
2009/11/20(金) 18:24:12
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧  ヒソヒソ・・・
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ  ヒソヒソ・・・
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'
0043デフォルトの名無しさん
垢版 |
2009/11/24(火) 19:45:10
正多角形を表現するクラスPolygonを定義し,いくつかのインスタンスを生成して表示せよ.メソッドも実行して結果を示すこと.

・辺の数と1辺の長さをアトリビュートとして持つ (コンストラクタは引数として辺の数と1辺の長さを取る)
・printすると次のように表示される
[Polygon] 辺の数: 5, 辺の長さ: 100
・周囲の長さを返すメソッド(perimeter)を持つ (引数なし)
0045デフォルトの名無しさん
垢版 |
2009/11/25(水) 22:27:19
Polygonをスーパークラスとして,正三角形(Triangle),正四角形(Square)を表現するクラスをそれぞれ定義せよ.

・辺の長さのみを引数に与えてインスタンスを生成する
・自身の面積を計算して結果を返すメソッドarea()を持つ
√3 = 1.73 としてよい
メインルーチンでは,実際にインスタンスを生成し,各インスタンスについて,インスタンス自身,周囲の長さ,面積の3項目を表示するようにせよ.

0047デフォルトの名無しさん
垢版 |
2009/11/29(日) 09:49:56
【 課題 】四人四首問題。「かるた部」の練習の一環として、
百人一首の中から第一文字が「や」の四枚を選んで、徹底的に練習することに
しました。四枚とは、
やすらはでねなましものをさよふけてかたぶくまでのつきをみしかな
やへむぐらしげれるやどのさびしきにひとをもみをみうらみざらまし
やまざとはふゆぞさびしさまさりけるひとめもくさもかれぬとおもへば
やまがはにかぜのかけたるしがらみはながれもあへぬもみぢなりけり
ルールは、
1) 二人ゲームである。
2) 四枚のなかから無作為に二枚を選び自分と相手の札とする。
3) 読み手は四枚全部読み上げる。いたがって空札(取る札がない)が二枚含まれる。
4) 一枚取った時点で勝負はつくが、残りの一枚も競うこととする。

[問題] 乱数を使ってそれぞれの持ち札を決め、それを表示します。
つぎに、読み札の順番を決めます。これはこの段階では表示しません。
一首、読み、それを表示し、
1) 空札 : 何文字目まで読まれてそれがわかったか
2) 相手札 : 同上
3) 自分札 : 同上
を表示しなさい。これを繰り返し、取り札がなくなったらゲームオーバー。
4) 二つのモードで作りなさい
 1) 読まれた札を二人とも記憶している。
 2) 読まれた札は忘れてしまう。
実際には取り札には下の句が書かれていますが、ここでは一首全体をお互い理解しているものとします。
004847
垢版 |
2009/11/29(日) 09:54:15
ちょっと直します。
四人一首問題ですねw いたがって->従って
004947
垢版 |
2009/11/29(日) 10:12:02
すみません。これは完全なシミュレーションとしてプログラムしてください。
読み札が表示されたら、キーボードから答えを入力という作り方もあると
思いますが。
0050デフォルトの名無しさん
垢版 |
2009/11/29(日) 11:55:25
# encoding: utf-8
import random
remember = True
cardall = set([
u"やすらはでねなましものをさよふけてかたぶくまでのつきをみしかな",
u"やへむぐらしげれるやどのさびしきにひとをもみをみうらみざらまし",
u"やまざとはふゆぞさびしさまさりけるひとめもくさもかれぬとおもへば",
u"やまがはにかぜのかけたるしがらみはながれもあへぬもみぢなりけり",
])
hand1, hand2 = random.sample(cardall, 2)
print "自分札:", hand1; print "相手札:", hand2; print
def specify(card, cardset):
  for i in xrange(len(card)):
    if sum(card[:i] == c[:i] for c in cardset) == 1: return i

rem = set()
remain = 2
for card in random.sample(cardall, 4):
  print card
  n = specify(card, cardall - rem)
  if card == hand1:
    print "自分札:", n; remain -= 1
  elif card == hand2:
    print "相手札:", n; remain -= 1
  else:
    print "空札:", n
  print
  if remain == 0:
    print "Game Over"; break
  if remember: rem.add(card)
0052デフォルトの名無しさん
垢版 |
2009/12/02(水) 07:56:47
【 課題 】和歌について考察する問題。
歌 ... こぬ人を待つほの浦の夕凪はやくやもしほの身もこがれつつ (定家)
これはかなり複雑なうたです。
人をまつとは「待つ」であり、「松」です。まつ帆だからです。松の姿に似た帆です。
もちろん松は浦の背景でもあります。浦は夕凪ですから心は風を「待って」もいます。
風はありませんから、待ってもこぬ人なのです。風があの人なのかそれとも帆船なのか
微妙です。浦は「浦」であると同時に心の「裏」であり、あの人(風)の気持ちを「占」なふ、
うらでもあります。
「焼くや」(やいているのだろうか)とは、恋に焦がれて身を焼いているのであり、
やくやもしほとは藻塩(自分)が陽にあぶられ、渇き、焼かれ、煙でいぶされ、さらに
煮られ、再び乾かされというような、製塩法の愛の地獄絵であり、身もこがれという
言葉には「藻」がここでも含まれています。製塩の煙は夕凪の浦に実際に漂って
いるのかもしれません。
以上のような、この歌に含まれる語とそれからくる連想をプログラムで表現しなさい。
0053デフォルトの名無しさん
垢版 |
2009/12/23(水) 23:58:06
Windows XP上で、
標準入力から入力されたパスを調べて、
1.実在するディレクトリだったらそのディレクトリとサブディレクトリの中のファイルのフルパスの一覧を標準出力に出力する。
2.実在するファイルだったらそのフルパスを標準出力に出力する。
3.実在しないパスだったらエラーを標準出力に出力する。

こんなPythonスクリプトをどなたか書いて下さいませんか?
よろしくお願い申し上げます。
0054デフォルトの名無しさん
垢版 |
2009/12/24(木) 00:13:41
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
0055デフォルトの名無しさん
垢版 |
2009/12/24(木) 11:56:36
>>53
import sys
import os
import os.path

s = sys.stdin.readline().rstrip('\n')
if os.path.exists(s):
  if os.path.isdir(s):
    for x in os.listdir(s):
      print os.path.abspath(x)
  else:
    print os.path.abspath(s)
else:
  print 'Not exists.'
005653
垢版 |
2009/12/24(木) 13:49:31
Pythonだとそんなに簡潔に書けるんですね。
ありがとうございます
(>_<)
0058デフォルトの名無しさん
垢版 |
2009/12/25(金) 11:20:37
>>53
#ほぼ>>55の功績
import os, os.path, sys

s = sys.stdin.readline().rstrip('\n')
if os.path.exists(s):
 if os.path.isdir(s):
  for root, dirs, files in os.walk(s):
   for fname in files: print os.path.join(root, fname)
 else:
  print os.path.abspath(s)
else:
 print 'Not exists.'
006153
垢版 |
2009/12/25(金) 20:24:29
みなさんありがとうございます。
感謝です。。
006253
垢版 |
2009/12/25(金) 20:27:25
>>58
Traceback (most recent call last):
 File "aaaaaa.py", line 6, in ?
  for root, dirs, files in os.walk(s):
AttributeError: 'module' object has no attribute 'walk'
こんなエラーがでました。
どうすれば良いでしょうか。
006968
垢版 |
2009/12/25(金) 23:37:58
できました。
ありがとうございました。
0070デフォルトの名無しさん
垢版 |
2009/12/28(月) 08:00:42
Windows XP上で、
標準入力から入力されたパスを調べて、
1.実在するディレクトリだったらそのディレクトリの名前とサブディレクトリの名前と、
それらの中にあるファイルの名前、およびファイルの中身に以下の置換作業を実行する。
 前からみて順に正規表現regex="〜〜"にマッチする文字列を全て"hogehoge"に置換する。
2.実在しないディレクトリでなかったらエラーメッセージを標準出力に出力する。

こんなPythonスクリプトをどなたか書いて下さいませんか?
よろしくお願い申し上げます。
0071デフォルトの名無しさん
垢版 |
2009/12/28(月) 08:02:24
>>70
×2.実在しないディレクトリでなかったらエラーメッセージを標準出力に出力する。
○2.実在 する ディレクトリでなかったらエラーメッセージを標準出力に出力する。
0072デフォルトの名無しさん
垢版 |
2009/12/28(月) 08:05:23
> regex="〜〜"にマッチする文字列を全て"hogehoge"
これはユーザにどうやって指定させるんだ
それともスクリプト中に埋め込んでしまっていいのか

というかパスを置換するのはわかったけど
ファイルの中身まで置換するっていうのは本気なのか
0073デフォルトの名無しさん
垢版 |
2009/12/28(月) 08:17:40
>>72
> これはユーザにどうやって指定させるんだ
ごもっともです。
ちょっと変えて、

setting.iniを読み込んで1行目を
> 標準入力から入力されたパスを調べて、
これに代えて調べるパスとします。

また2行目を
regex="〜〜" #正規表現
3行目を
"hogehoge" #置換後の文字列
として取得するとしてください。

> というかパスを置換するのはわかったけど
> ファイルの中身まで置換するっていうのは本気なのか
本気です。
・・・宿題なものでして。
0074デフォルトの名無しさん
垢版 |
2009/12/28(月) 09:28:50
Python 2.6.4です。

これが分かりません。

> 問 1 次のプログラムの実行結果は 1になる。
> a='apple'
> b='apple'
> print a is b # 1 を出力
> つまり a と b はデータを共有している。これで問題が発生しない理由について考えよ。
>
> 問 2 次のプログラムの実行結果は 0 になる。
> a=('apple',1)
> b=('apple',1)
> print a is b # 0 を出力
> つまり a と b はデータを共有していない。タプル形式の要素への代入が禁じられているにも
> かかわらず安全策が採られているのである。何故か? もしも要素の性格に関わらずタプル形
式のデータを共有した場合に、どのような問題が発生するかを具体例で示せ。

ttp://codepad.org/F6w1aRBF

どうしてでしょうか?
問1は
'apple'は書き換え不可能だから共有させても問題ないため
だと思いますが問2が分かりません。
0075デフォルトの名無しさん
垢版 |
2009/12/28(月) 10:02:38
>>74
a = ('apple', [])
b = ('apple', [])

で考えてみたらいいんじゃないかな
筋の悪い問題なのであまり深く考えないでいいよ
0076デフォルトの名無しさん
垢版 |
2009/12/28(月) 10:05:33
念のために付け加えると

> a='apple'
> b='apple'
> print a is b # 1 を出力

これで1になるか0になるかは実装依存
007774
垢版 |
2009/12/28(月) 10:10:06
ありがとうございます。

 a=('apple',[])
 b=('apple',[])
だとすると
 a[1]=[2]
は不可能ですが
 a[1].append(2)
こんなことは可能だから、ってことですね。
なるほど。
0079>70
垢版 |
2009/12/29(火) 00:02:10
すみません。
>>70 お願いします。
補正したものは以下です。
########################################################3
Windows XP上で、
まず 同じディレクトリにあるsetting.iniを読み込んで
その1行目, 2行目, 3行目を
文字列p, regex, aftに格納する。
pをパスとして調べ、
1.実在するディレクトリだったらそのディレクトリの名前とサブディレクトリの名前と、
それらの中にあるファイルの名前、およびファイルの中身に以下の置換作業を実行する。
> 前からみて順に正規表現regexにマッチする文字列を全てaftに置換する。
2.実在しないディレクトリでなかったらエラーメッセージを標準出力に出力する。

こんなPythonスクリプトをどなたか書いて下さいませんか?
よろしくお願い申し上げます。
0082デフォルトの名無しさん
垢版 |
2010/01/01(金) 08:57:27
あけましておめでとうございます。

すみませんどなたか
>>79
お願いできませんか?
ファイル名はともかく全てのファイルの中身を置換するというところがいまひと
つできなさそうです。
文系なのですが何を間違ったかこんな難しそうな科目を…。
0083デフォルトの名無しさん
垢版 |
2010/01/01(金) 14:36:18
#!/usr/bin/python
import sys, os, re

with open("setting.ini") as f:
    path = f.readline().rstrip("\r\n")
    regex = f.readline().rstrip("\r\n")
    repl = f.readline().rstrip("\r\n")

if os.path.isdir(path):
    for dirpath, dirnames, filenames in os.walk(path):
        for name in filenames:
            path = os.path.join(dirpath, name)
            contents = open(path).read()
            if re.search(regex, contents):
                open(path, "w").write(re.sub(regex, repl, contents))
else:
    sys.stderr.write("Error\n")
008482
垢版 |
2010/01/01(金) 20:32:10
>>83
ありがとうございます。
とても助かりました。
新年早々お手数をおかけいたしました。
0085デフォルトの名無しさん
垢版 |
2010/01/17(日) 21:12:41
【課題】
同じ長さのリストA,Bがある。Aはソート対象のデータ、Bは比較用の値が入っている。
A,Bの2つの引数をとり、Bの値が昇順になるようにAをソートする関数を定義しなさい。
引数のリストは破壊しても良く、ソート結果は戻り値・引数Aを上書きのどちらでも良い。
処理の早いものには追加点を与える。
【期限】 1月18日(月) 午後1時
【Ver】 Python 2.6

よろしくおねがいします。
0086デフォルトの名無しさん
垢版 |
2010/01/17(日) 22:43:37
A, B の初期値と結果の具体例が欲しい。
A, B が同じ長さのリストと言ってるが、
共通してない要素はソートの結果のどこに入るんだ?
0090デフォルトの名無しさん
垢版 |
2010/01/18(月) 17:06:43
>>89
> 比較用の値ってなんですか?
例えば、[3, -4, 10, -1]を
絶対値の大きさ順に並べるとすると
比較用の値は[3, 4, 10, 1]になる。
具体的には、

>>> A = [3, -4, 10, -1]
>>> B = map(abs, A)
>>> B
[3, 4, 10, 1]
>>> mysort(A, B)
[-1, 3, -4, 10]
>>> sorted(A, key=abs)
[-1, 3, -4, 10]

これで理解できなければ
アルゴリズムの教科書をソートキーで引いてくれ。
009185
垢版 |
2010/01/18(月) 22:42:26
>>88さんの方法でできました。
たった1行で出来ちゃうんですね。十数行も書いたあげく動かなかった俺って…
ありがとうございました。
0092デフォルトの名無しさん
垢版 |
2010/01/27(水) 00:28:55
●カップラーメンのタイマーを作成●
・tkinterをしようしてGUIで操作できるようにする。
・3分、5分、…といくつか選択できるようにする。
スマートなコードを宜しくお願い致します。
0094デフォルトの名無しさん
垢版 |
2010/01/27(水) 01:46:02
#!/usr/bin/python
import Tkinter as Tk
import time
from functools import partial
class NoodleTimer(Tk.Frame):
    def __init__(self, master=None):
        Tk.Frame.__init__(self, master)
        self.label = Tk.Label(self, text='Timer', font='Arial 20')
        self.label.pack(side='left')
        menubutton = Tk.Menubutton(self, text='>')
        menubutton.pack()
        menu = Tk.Menu(menubutton, tearoff=0)
        menu.add_command(label='1 minutes', command=partial(self.start,  60))
        menu.add_command(label='3 minutes', command=partial(self.start, 180))
        menu.add_command(label='5 minutes', command=partial(self.start, 300))
        menubutton.config(menu=menu)
    def start(self, sec):
        self.finish_time = time.time() + sec
        self.tick()
    def tick(self):
        t = self.finish_time - time.time()
        if t < 0:
            self.label.config(text="Time's up!")
        else:
            self.label.config(text='%02d:%02d'%(t/60, t%60))
            self.after(100, self.tick)
if __name__ == '__main__':
    app = NoodleTimer()
    app.pack()
    app.mainloop()
0095デフォルトの名無しさん
垢版 |
2010/01/27(水) 02:51:47
>>94
すごい!
ありがとうございます。
参考にして勉強させて頂きます。

ちなみにVBも平行して学習しているんですが(意外といい)
出てくる用語はほぼ同じと考えてもいいですか?
クラスとか、継承とか、オブジェクトとか
0097デフォルトの名無しさん
垢版 |
2010/01/27(水) 04:10:40
参考書には書いてあるんですよ
0098デフォルトの名無しさん
垢版 |
2010/01/29(金) 21:55:33
VBの継承ってどんなのか解らんが
クラスやオブジェクトについてはだいたい一緒じゃね
個人的にVBは戻り値の設定と関数からの脱出が別れてるとこが面白いな
0099デフォルトの名無しさん
垢版 |
2010/01/30(土) 00:11:24
面倒なだけで面白くもなんともない

さらに戻り値設定し忘れとか起こすしろくなことにならない
言語仕様として糞
0104ゆかちん
垢版 |
2010/02/13(土) 22:59:26
お疲れ様です!
こんなのやってるんですがヘルプお願いします。
配列作って文字列を入れればいいんでしょうか?
よろしくお願いします。

以下の5行の文字列のいずれかをランダムに返すプログラムを書きなさい
あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
0105デフォルトの名無しさん
垢版 |
2010/02/13(土) 23:06:52
import random
random.randint(0, 4) # 0 から 4 をランダムで返す

考え方はそれであってるからあとはがんばって
0106ゆかちん
垢版 |
2010/02/13(土) 23:20:56
配列の作り方をお願いします
乱数のところはわかりました。ありがとうございます!
スキージャンプまでになんとかせねば
0107デフォルトの名無しさん
垢版 |
2010/02/13(土) 23:43:33
配列ってより、リストかタプルな。てか、choice使うと楽。
import random
random.choice(["あいうえお", "かきくけこ", "以下略"])
0108デフォルトの名無しさん
垢版 |
2010/02/14(日) 00:11:45
うーむそれだとスケールできないだろ
5行ならいいが1000行でやろうとするとその方法だと無理
0110デフォルトの名無しさん
垢版 |
2010/02/14(日) 02:51:13
>>108
いかにも使い捨てっぽいプログラムに高望みしないの。
エディタに正規表現置換ついてるでしょ。

>>109
with open("hoge.txt") as f:
 lines = [line for line in f]
 print random.choice(lines)
0111デフォルトの名無しさん
垢版 |
2010/02/14(日) 13:43:29
タプルって何?
0112デフォルトの名無しさん
垢版 |
2010/02/14(日) 13:59:28
immutable(変更不能)なシーケンス
dictのキーにできる
わからなければリストを使ってれば良い
0113ゆかちん
垢版 |
2010/02/14(日) 15:30:01
あん、できた。ありがとうございますん!
0114デフォルトの名無しさん
垢版 |
2010/02/14(日) 15:33:23
print 'aaa'

if boolean :
    〜ここ〜

print 'bbb'
print 'ccc'



上のソースにて、〜ここ〜の部分に何か入れて、
このプログラムを終了してしまいたいのですが、
どうすればいいでしょうか?
booleanがTrueの時にプログラムを終了したいということです。
よろしくお願い申し上げます。
0117114
垢版 |
2010/02/14(日) 16:39:47
>>116
ありがとうございます。
0118デフォルトの名無しさん
垢版 |
2010/02/14(日) 18:37:05
おっぱいうp
0121デフォルトの名無しさん
垢版 |
2010/02/21(日) 11:05:30
教える人は自分が偉くなったと勘違いをしているのか…
0122デフォルトの名無しさん
垢版 |
2010/02/21(日) 18:55:28
は?教えてやるんだから偉いんだお
0125デフォルトの名無しさん
垢版 |
2010/02/27(土) 00:46:13
import sys って具体的にどういうときに使うんですか?
0129デフォルトの名無しさん
垢版 |
2010/03/01(月) 00:47:56
sys.stdout.write("ggrks")
0130デフォルトの名無しさん
垢版 |
2010/03/01(月) 00:57:33
raise で終わらせるなんてかこわるい!



と思って、 sys.exit() って raise SystemExit なのね。

でもきもちわるい。

ttp://docs.python.org/lib/module-sys.html
0131デフォルトの名無しさん
垢版 |
2010/03/01(月) 08:30:43
>>130
os._exit(status) もあるよ。
例外を使うのは、 sys.exit() を実行したところからまき戻って
try-finally節で用意されたファイルの削除処理などを実行するため。
それでも気持ち悪い?
0132デフォルトの名無しさん
垢版 |
2010/03/07(日) 21:05:47
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
0133デフォルトの名無しさん
垢版 |
2010/03/20(土) 09:55:10
【 課題 】Basic Python Exercisesのstring1.pyを解く
http://code.google.com/intl/ja/edu/languages/google-python-class/exercises/basic.html
【 Ver  】2.6ぐらい
【 補足 】手順は次のとおり
1. http://code.google.com/edu/languages/google-python-class/google-python-exercises.zip をダウンロード
2. 解凍してbasic/string1.pyを開く
3. 各関数を完成させたらpython string1.pyで実行、main()に記述してあるテストに通ればOK

一個だけはずかしながら

# A. donuts
# Given an int count of a number of donuts, return a string
# of the form 'Number of donuts: <count>', where <count> is the number
# passed in. However, if the count is 10 or more, then use the word 'many'
# instead of the actual count.
# So donuts(5) returns 'Number of donuts: 5'
# and donuts(23) returns 'Number of donuts: many'
def donuts(count):
# +++your code here+++
if count >= 10:
s = 'many'
else:
s = str(count)
return 'Number of donuts: %s' % s
0134デフォルトの名無しさん
垢版 |
2010/03/20(土) 10:13:34
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
0136デフォルトの名無しさん
垢版 |
2010/05/28(金) 09:41:57
ほし
0137デフォルトの名無しさん
垢版 |
2010/06/20(日) 15:32:10
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
0138デフォルトの名無しさん
垢版 |
2010/06/30(水) 15:38:33
[1] 授業単元:ファイル操作、2分探索法
[2] 問題文:学生の身長、体重のデータを読み込みある学籍番号を入力した
ときにその学生の学籍番号、身長、体重を2分探索法により求め、出力しなさい。
学生のデータは、txtファイルでxx yyy zzという風に記載されています。
(例)出力結果
学生番号:xx
身長:yyy (cm)
体重:zz (kg)
[3] 環境
 [3.1] OS:Windows7
 [3.2] バージョン: Python3
 [3.3] 言語: Python
[4] 期限: 7月1日夕方まで
[5] その他の制限: 多少不恰好でも、分かりやすいプログラムがいいです、、。

よろしくお願いします。
0139デフォルトの名無しさん
垢版 |
2010/06/30(水) 19:14:43
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文:
二分法による平方根の計算。但し、求めたい平方根(自
然数)を入力できるようにした上で、プログラムの実行時
の計算回数を計算・表示できるように、プログラムを作成
すること。
[3] 環境
 [3.1] OS: ChromeOS
 [3.2] バージョン: Python3
 [3.3] 言語: Python
[4] 期限:7月3日まで
[5] その他の制限:特になし

よろしくお願いします。
0140デフォルトの名無しさん
垢版 |
2010/07/01(木) 21:48:36
すいません便乗して
[1] 授業単元:2分探索法
[2] 問題文: http://uploader.sakura.ne.jp/src/up10962.jpg
[3] 環境
 [3.1] OS: MacOSX
 [3.2] バージョン:Python3
 [3.3] 言語: Python
[4] 7月2日の3時まで
[5] 特になし
リンク先に問題文をおきました。
問題が2つあるので、b1.rb b2.rb というふうにしてください。
よろしくお願いします。
0141デフォルトの名無しさん
垢版 |
2010/07/04(日) 12:24:50
> 問題が2つあるので、b1.rb b2.rb というふうにしてください。
> 問題が2つあるので、b1.rb b2.rb というふうにしてください。
> 問題が2つあるので、b1.rb b2.rb というふうにしてください。
0144デフォルトの名無しさん
垢版 |
2010/07/04(日) 21:37:00
    すいません訂正
    [1] 授業単元:2分探索法
    [2] 問題文: http://uploader.sakura.ne.jp/src/up10962.jpg
    [3] 環境
     [3.1] OS: MacOSX
     [3.2] バージョン:Python3
     [3.3] 言語: Python
    [4] 7月7日の7時まで
    [5] 特になし
    リンク先に問題文をおきました。
    問題が2つあるので、b1.py b2.py というふうにしてください。
    よろしくお願いします。

0145デフォルトの名無しさん
垢版 |
2010/07/05(月) 21:03:29
それがどうかしましたか
0146デフォルトの名無しさん
垢版 |
2010/07/08(木) 20:20:34
【 課題 】USBカメラからリアルタイムで動画を取り込み、パーティクルフィルタにより物体を検出するプログラムを書け。
      重み付けはRGB値を用いて行い、検出するRGB値の範囲は自由とする。

【 用語 】パーティクルフィルタとは
      ttp://www23.atwiki.jp/yahirohumpty/pages/8.html

【 期限 】7/12まで

【 Ver  】Windows XP、Python2.6.5

【 補足 】OpenCVなどライブラリは使用せずにお願いします
0148146
垢版 |
2010/07/09(金) 09:09:53
可能ならば使わずにお願いします
わがままを言って申し訳ありません
0150146
垢版 |
2010/07/15(木) 12:40:53
146の課題ですが、パーティクルフィルタが実装されているもの(OpenCV等)以外ならば
ライブラリを使用しても良いと言われました

どなたかよろしくお願いします
0151デフォルトの名無しさん
垢版 |
2010/11/01(月) 14:43:42
http://twitter.com/yukihiro_matz/statuses/29317109670

yukihiro_matz: 英語圏でRubyとPythonを比較する記事を見ることが少なくなってきた
のは、RubyとPythonでクラスタが分離してきたからか。逆に日本語でRubyとPythonを
比較 する記事を見かけるのは国内でのPythonの地位が向上したからか。

               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高にアホだお
  \     ` ー'´     //
  / __        /
  (___)      /
0152デフォルトの名無しさん
垢版 |
2010/11/01(月) 15:08:14

               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高にアホだお
  \     ` ー'´     //
  / __        /
  (___)      /
0153デフォルトの名無しさん
垢版 |
2010/11/03(水) 00:27:32
>>152
               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <このコピペってはやってんの?
  \     ` ー'´     //
  / __        /
  (___)      /
0155デフォルトの名無しさん
垢版 |
2010/11/10(水) 00:23:11
本番コードに pass 残すなよ!
0157デフォルトの名無しさん
垢版 |
2010/11/24(水) 01:28:15
【 課題 】
あるディレクトリに存在するすべてのファイルについて
各ファイルの先頭一文字をディレクトリ名としてサブディレクトリを作成し
そのサブディレクトリへそのファイルを移動する
(既にサブディレクトリが存在する場合はファイルの移動のみ)
という操作を行うpythonで記述実行し動作を確認しなさい

【 期限 】11月25日13:00まで
【 Ver  】2.5以上 2.6以下
【 補足 】済みません丸投げします
0158デフォルトの名無しさん
垢版 |
2010/11/24(水) 02:09:05
動作確認はしてない。
日本語含まれてるとかファイル名が1文字のファイルとか.から始まるファイルとかは知らない。

import os
import os.path
import shutils

ARU_DIRECTORY = '/home/aru_user/target'

def make_subdir(dir):
files = os.listdir(dir)
subdirs = list(set([f[0] for f in files]))
for d in subdirs:
os.mkdir(os.path.join(dir, d))
for f in (f for f in files if f[0] == d):
shutils.move(os.path.join(dir, f), os.path.join(dir, d, f))

make_subdir(ARU_DIRECTORY)
0159デフォルトの名無しさん
垢版 |
2010/11/24(水) 02:09:50
ごめん、インデントとんでしもた

import os
import os.path
import shutils

ARU_DIRECTORY = '/home/aru_user/target'

def make_subdir(dir):
  files = os.listdir(dir)
  subdirs = list(set([f[0] for f in files]))
  for d in subdirs:
    os.mkdir(os.path.join(dir, d))
    for f in (f for f in files if f[0] == d):
      shutils.move(os.path.join(dir, f), os.path.join(dir, d, f))

make_subdir(ARU_DIRECTORY)
0160デフォルトの名無しさん
垢版 |
2010/11/24(水) 03:14:28
微妙に引っかかるポイントがあるね

ディレクトリにファイルだけじゃなくてサブディレクトリが存在していた場合
その先頭文字でサブディレクトリを作って移動してしまうかもしれない

さらに >>158 さんが指摘しているように
既に一文字の「ファイル」があった場合 mkdir に失敗してファイルに上書きしてしまうかもしれないし
一文字の「サブディレクトリ」があった場合に同じ名前で mkdir してしまうかもしれない
0165157
垢版 |
2010/11/24(水) 16:20:15
みなさんありがとうございました
あとは自分でなんとかしてみます
0167デフォルトの名無しさん
垢版 |
2010/11/24(水) 23:32:42
テンポラリなディレクトリ作って、取りあえずそこに突っ込んでからリネームすればいいんでないの
0168デフォルトの名無しさん
垢版 |
2010/11/24(水) 23:38:11
import os
import shutil
import sys
import tempfile

def move_subdir(path):
 base = path.decode(sys.getfilesystemencoding())
 files = [f for f in os.listdir(base) if os.path.isfile(os.path.join(base, f))]
 for f in files:
  sub = os.path.join(base, f.lstrip(u'.')[0])
  if os.path.isfile(sub):
   with tempfile.NamedTemporaryFile(dir=base, delete=False) as tf:
    shutil.move(sub, tf.name)
   os.mkdir(sub)
   shutil.move(tf.name, sub)
   os.rename(os.path.join(sub, os.path.basename(tf.name)), os.path.join(sub, f))
  else:
   os.path.isdir(sub) or os.mkdir(sub)
   shutil.move(os.path.join(base, f), sub)
0172デフォルトの名無しさん
垢版 |
2011/01/10(月) 21:15:01
【 課題 】
ハノイの塔の解法プロセスを表示するプログラム hanoi.py に対して,
ハノイの塔の解法プロセスをイベントに同期してビジュアル表示するGUIをTkinterの適切なウィジェットを利用して実現せよ.

【 期限 】1ヶ月以内
【 Ver  】Python 2.x
【 補足 】丸投げです.よろしくお願いします.

完成イメージ
http://loda.jp/kakifurai/?id=1
hanoi.py
http://loda.jp/kakifurai/?id=2
0173デフォルトの名無しさん
垢版 |
2011/01/11(火) 06:54:24
例(hanoi.py)のソースが下手すぎなので治してあげたよ

class Hanoi(object):
  def __init__(self, height):
    self.bars = [range(height, 0, -1), [], []]
    self.step = 0

  def __repr__(self):
    return 'step -> %d\nBAR1: %s\nBAR2: %s\nBAR3: %s' % (
      self.step, self.bars[0], self.bars[1], self.bars[2])

  def move(self, n, src, dst, work):
    ''' move n discs from src to dst using work '''
    if n == 1: # move sigle disc directly
      self.bars[dst].append(self.bars[src].pop())
      self.step += 1
      print self
    else: # move above (n - 1) discs to work, and move n th disc to dst
      self.move(n - 1, src, work, dst)
      self.move(1, src, dst, work)
      self.move(n - 1, work, dst, src)

if __name__ == '__main__':
  import sys
  try:
    height = int(sys.argv[1])
  except (IndexError, TypeError, ValueError), e:
    height = 3
  hanoi = Hanoi(height)
  print hanoi
  hanoi.move(height, 0, 1, 2)
0177デフォルトの名無しさん
垢版 |
2011/01/12(水) 06:11:47
move 1 from A to C
move 2 from A to B
move 1 from A to C
move 3 from A to C
move 1 from A to C
move 2 from A to B
move 1 from A to C
move 4 from A to B
move 1 from A to C
move 2 from A to B
move 1 from A to C
move 3 from A to C
move 1 from A to C
move 2 from A to B
move 1 from A to C

なんか変
0182デフォルトの名無しさん
垢版 |
2011/01/12(水) 09:22:11
一箇所修正

修正前
    except StopIteration, e:
      self.running = False

修正後
    except StopIteration, e:
      self.running = False
      self.kwClock.set('STOP')

にしてください
後者の方が安定します(謎
0183172
垢版 |
2011/01/12(水) 12:00:19
>>173-182
こんなにレスもらえるとは思ってませんでした.レスをしてくれた皆さん,ありがとうございました.

作成していただいたプログラム(http://codepad.org/OtCGyrps)はWin7(64bit), Python 2.5.2の環境で正しく動作しました.
どうもありがとうございました.
(ちなみに,Mac OS 10.6, python 2.6.1では動きませんでした.
Tkinterはクロスプラットフォームと思ってましたが,OSに依存するコードもあるのかな?)

これから,皆さんに書いていただいたソースコードを解読していこうと思います.
また機会がありましたら,よろしくお願いします.
0186デフォルトの名無しさん
垢版 |
2011/01/13(木) 16:18:35
【宿題テンプレ】
[1] 授業単元: Pythonプログラミング
[2] 問題文(含コード&リンク):
    四則演算をコマンドラインから入力して答えを出せ。
    例)keisan.py (4 x (7 + 2) - 20) / 2
答え:8
[3] 環境
 [3.1] OS: WindowsXP SP2以上
 [3.2] 言語: Python2.x(出来れば2.5あたりでも動くもの)
[4] 期限:2011年1月末
[5] その他:
0188デフォルトの名無しさん
垢版 |
2011/01/13(木) 16:59:44
出来ました
早速の回答ありがとうございます
なんでそうなるのか良くわかりませんが
これから書いていただいたソースコードを解読していこうと思います
また機会がありましたらよろしくお願いします
0189見習い
垢版 |
2011/01/14(金) 14:02:03
解答お願いします。

1. 下記のような九九の計算表を出力するプログラムを作成し、実行してください。このときforループを使用するもの(q11.py)と、whileループを使用するもの(q12.py)の2種類を作成してください。
1の段 1 2 3 4 5 6 7 8 9
2の段 2 4 6 8 10 12 14 16 18
..........中略....
9の段 9 18 27 36 45 54 63 72 81

2. 次のような手順で、キーボードから入力した数値の合計を求めるものとします。実際に Python プログラム (q2.py) の形にして、実行してください。
合計に使う変数を 0 にする。
キーボードから数値を入れる。
入力した数値が 0 より大きい間次のブロックを繰り返す:
合計に数値を加える。
キーボードから数値を入れる。
合計を印刷する
3. turtleを使用して、図形を表示するスクリプトg.pyを作成してください。どのような図形を作成するか記述(少なくとも6角形よりは複雑である事)して、スクリプトの内容をメールに含めてください。なお、スクリプトには、必ず for ループを含むようにしてください
0190デフォルトの名無しさん
垢版 |
2011/01/14(金) 14:49:14
>>> for r in xrange(1, 10):
... print '%dの段' % r,
... for c in xrange(1, 10):
... print r * c,
... print
...
1の段 1 2 3 4 5 6 7 8 9
2の段 2 4 6 8 10 12 14 16 18
3の段 3 6 9 12 15 18 21 24 27
4の段 4 8 12 16 20 24 28 32 36
5の段 5 10 15 20 25 30 35 40 45
6の段 6 12 18 24 30 36 42 48 54
7の段 7 14 21 28 35 42 49 56 63
8の段 8 16 24 32 40 48 56 64 72
9の段 9 18 27 36 45 54 63 72 81
0191デフォルトの名無しさん
垢版 |
2011/01/14(金) 14:50:27
インデント消えてた orz

for r in xrange(1, 10):
 print '%dの段' % r,
 for c in xrange(1, 10):
  print r * c,
 print
0192デフォルトの名無しさん
垢版 |
2011/01/14(金) 15:10:07
q12.py

# -*- coding: utf-8 -*-
while False:
  pass
else:
  print reduce(lambda a, b: a + reduce(lambda x, y: u'%s %s' % (x, y * b), xrange(1, 10), u'%dの段' % b) + u'\n', xrange(1, 10), u'')
0193見習い
垢版 |
2011/01/15(土) 12:34:05
2. 以下の手順に沿って二次方程式の解を計算するプログラム q2.py を作りなさい。ただし、実行結果は以下の黄色の囲みの部分の通りになるようにしなさい。なお、平方根の計算には math.sqrt() を使うことができます。

    (1) aを入力する
    (2) bを入力する
    (3) cを入力する
    (4) 判別式D=b*b-4*a*cを計算する。
    (5) Dの値に応じて以下の処理を行う。
(5-1) D<0 のとき "実数解はありません"と表示する
(5-2) D=0 のとき 重解を計算して表示する
(5-3) D>0 のとき 2つの解を計算して表示する


実行例

$./q2.py二次方程式ax^2+bx+c=0の係数を入れてくださいa? 1b? 0c? 1実数解はありません$ ./q2.py二次方程式ax^2+bx+c=0の係数を入れてくださいa? 1b? 0c? -1解は 1.0 と -1.0 です



0195見習い
垢版 |
2011/01/15(土) 23:31:27
>>189 の続きもおながいします。
0196デフォルトの名無しさん
垢版 |
2011/01/15(土) 23:53:23
[1] 授業単元:プログラミング及び演習II
[2] 問題文(含コード&リンク):-偏差値と標準偏差の計算-
入力ファイル motofile.dat を事前に用意し、出力ファイル result.dat を
生成する Python ソースプログラム hensa.py を書け。
入力ファイルと出力ファイルは、コマンドライン引数から文字列として取得し、
プログラムでは必ず class を使用すること。
プログラムは以下の形式で実行する。

$ ./hensa.py < motofile.dat > result.dat

生成される result.dat の内容は以下の通りである。
http://codepad.org/8qupROUX
順位4位と順位9位に注意されたい。

[3] 言語:Python 2.5 以上
[4] 期限:2011年01月16日 19:00まで
[5] その他の制限:このプログラムを参考にして下さい。
http://codepad.org/xQ7jLJ15

平均・標準偏差・偏差値の計算式
Wikipedia -偏差値- 数式による解説にある計算式を使って下さい。

平方根の計算には、math.sqrt 関数を使用して下さい。
0197デフォルトの名無しさん
垢版 |
2011/01/16(日) 22:44:46
>>195
> 2. 次のような手順で、キーボードから入力した数値の合計を求めるものとします。実際に Python プログラム (q2.py) の形にして、実行してください。
> 合計に使う変数を 0 にする。
> キーボードから数値を入れる。
> 入力した数値が 0 より大きい間次のブロックを繰り返す:
> 合計に数値を加える。
> キーボードから数値を入れる。
> 合計を印刷する

import os
sum = 0.0
n = float(raw_input())
while n>0:
  sum += n
  n = float(raw_input())
os.system("echo %f | lp" % sum)  # windowsならos.system("echo %f >PRN" % sum)
0198デフォルトの名無しさん
垢版 |
2011/01/17(月) 01:49:45
見習い
>>189 の 3. もおながいします。
0200デフォルトの名無しさん
垢版 |
2011/01/20(木) 17:18:41
>>189
3. g.py

import turtle
t = turtle.Turtle()
t.width(15)
t.color(240/256.0, 192/256.0, 32/256.0)
a = [(-14, 30), (24, 9), (-16, 6), (10, 6), (2, 4), (-14, 8), (17, 6),
(33, 2), (33, 2), (32, 1), (32, 1), (32, 1), (32, 4), (33, 4), (32, 2),
(32, 2), (32, 2), (-1, 2), (1, 4), (2, 5), (-15, 7), (30, 6), (-13, 3),
(13, 7), (33, 2), (33, 2), (-12, 2), (4, 8), (-16, 5), (10, 7), (33, 2),
(32, 1), (32, 1), (32, 1), (32, 2), (32, 2), (33, 3), (32, 3), (32, 2),
(32, 2), (-19, 7), (27, 2), (-27, 8), (2, 4), (2, 4), (-14, 8), (17, 6),
(33, 2), (33, 2), (32, 1), (32, 1), (32, 1), (32, 4), (33, 4), (32, 2),
(32, 2), (32, 2)]
for d in a:
  (p, q) = (t.down, d[0]) if d[0] > 0 else (t.up, -d[0])
  p(); t.left(q * 10); t.forward(d[1] * 10)
0201見習い
垢版 |
2011/01/24(月) 15:47:12
占い文を fortune.dat から取り出すようにしなさい。
(q1.py という名前で作成)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# a.py
# いちご占い
print '*** いちご占い ***'
fortune = {
'いちご': '幸運が訪れます',
'みかん': '努力が必要です',
'りんご': '我慢が必要です'
}
ans = raw_input('好きなフルーツの名前をどうぞ: ')
if fortune.has_key(ans):
print '%sの好きなあなたには%s.' % (ans, fortune[ans])
else: print '%sの好きなあなたは健康に気をつけてください.' % an

ヒント

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# a.py
# いちご占い
print '*** いちご占い ***'
#fortune.datからディクショナリを読み込むようにここに数行追加。
ans = raw_input('好きなフルーツの名前をどうぞ: ')
if fortune.has_key(ans):
print '%sの好きなあなたには%s.' % (ans, fortune[ans])
else: print '%sの好きなあなたは健康に気をつけてください.' % an
0202デフォルトの名無しさん
垢版 |
2011/01/24(月) 17:55:12
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# a.py
# いちご占い
print '*** いちご占い ***'
with open("fortune.dat", "r") as f: fortune = eval(f.read())# からディクショナリを読み込むようにここに数行追加。
ans = raw_input('好きなフルーツの名前をどうぞ: ')
if fortune.has_key(ans):
print '%sの好きなあなたには%s.' % (ans, fortune[ans])
else: print '%sの好きなあなたは健康に気をつけてください.' % an
0203まるっきりの初心者。
垢版 |
2011/01/24(月) 20:44:42
import osg,osgDB,osgViewer,osgGA
import sys,math,random,time

#function for move
def moveX( dx ):
global cbx,current,colorpat
if current < 0: return
if(cbx == 9 and dx == 1) or (cbx == 0 and dx == -1 ):return
cbx = cbx + dx
position = colorpat[current].getPosition()
pos = osg.Vec3d(cbx,position.y(),position.z())
colorpat[current].setPosition( pos )

def moveY( dy ):
global cby,current,colorpat
if current < 0: return
if(cby == 9 and dy == 1) or (cby == 0 and dy == -1 ):return
cby = cby + dy
position = colorpat[current].getPosition()
pos = osg.Vec3d(position.x(),cby,position.z())
colorpat[current].setPosition( pos )

def speedFall():
for i in range(3):
if(fallBox() == False):
createNewBox(root)
break

0204まるっきりの初心者。
垢版 |
2011/01/24(月) 20:46:23
# keyboard handler
class KeyboardHandler(osgGA.GUIEventHandler):

def __init__(self):
osgGA.GUIEventHandler.__init__(self)

def handle(self,ea,aa,obj,nv):
vwr = osgViewer.GUIActionAdapterToViewer(aa)
if not vwr:return False
eventtype = ea.getEventType()
if eventtype == ea.KEYDOWN:
if ea.getKey() == ea.KEY_Right:
moveX( 1 )
return True
elif ea.getKey() == ea.KEY_Left:
moveX( -1 )
return True
elif ea.getKey() == ea.KEY_Up:
moveY( 1 )
return True
elif ea.getKey() == ea.KEY_Down:
moveY( -1 )
return True
elif ea.getKey() == ea.KEY_Space:
speedFall()
return True
return False
0205まるっきりの初心者。
垢版 |
2011/01/24(月) 20:47:09
#create frame
def createFrame( root ):
for i in range( 8 ):
if(i % 2 == 0): x,bx = 5,10
elif((i-1)%4==0): x,bx = -0.25,0.5
else: x,bx =10.25,0.5
if(i%2 == 1):y,by = 5,10
elif(i%4 == 0):y,by = -0.25,0.5
else:y,by = 10.25,0.5
if(i<4):z,bz = 0,0.5
else:z,bz = 20,0.5


box = osg.Box(osg.Vec3(x,y,z),bx,by,bz)
bb = osg.ShapeDrawable( box )
bb.setColor(osg.Vec4(0.5,0.5,0.5,0.1))
gg = osg.Geode()
gg.addDrawable( bb )
root.addChild( gg )

cbx = -1
cby = -1
cbz = -1

stack = [[]]
for x in range(10):
stack.append([])
for y in range(10):
stack[x].append(0)
0206まるっきりの初心者。
垢版 |
2011/01/24(月) 20:47:49
#shifting the plane if the plane is satisfied
def shiftingPlane():
global current,stack
satisfied = True
for i in range(100):
if( satisfied and stack[i / 10][i % 10]< 1 ):
satisfied = False
break
if ( satisfied ):
for x in range(10):
for y in range(10):
stack[x][y] = stack[x][y]-1
for i in range( current ):
position = colorpat[i].getPosition()
z = position.z()-1
pos = osg.Vec3d(position.x(),position.y(), z)
colorpat[i].setPosition( pos )
0207見習い
垢版 |
2011/01/29(土) 13:26:55
3. 下記の手順に従ってsin(x)/x=0.90の近似解xを求めるスクリプトを作成しなさい。なお、sin(1.)/1.≒0.85で、ここからxの減少に伴ってsin(x)/xの値が単調増加することはわかっているものとします。スクリプトの名前はkinji.pyとしてください。

(1) xを1.とする。
(2)次の過程を無限ループで繰り返す 。
(2.1)sin(x)/xを計算してyに代入する。
(2.2)xとy(sin(x)/x)の値を表示する。
(2.3)yの値が0.90以下の場合、xの値を0.01小さくして(2.1)にもどる。
(2.4)yの値が0.90以上であれば、”近似解がみつかりました。解は***です”というメッセージを示して、プログラムを終了する。

実行例
./kinji.py
sin(x)/x=0.9の近似解を求めます
x=0.99 sin(x)/x=0.844470685455
x=0.98 sin(x)/x= 0.84744629642
中略 .......

x=*** sin(x)/x=**************
近似解が見つかりました。解は***です。


(ヒント:ループから抜けるbreak)

0208デフォルトの名無しさん
垢版 |
2011/01/29(土) 14:44:52
>>207
手続き型言語なんだから、手続きが書いてある場合は、書いてある通りにとりあえず書いてみろ。

import sys
import math
# (1) xを1.とする。
x = 1.
# (2)次の過程を無限ループで繰り返す 。
while True:
# (2.1)sin(x)/xを計算してyに代入する。
  y = math.sin(x)/x
# (2.2)xとy(sin(x)/x)の値を表示する。
  print x, y
# (2.3)yの値が0.90以下の場合、xの値を0.01小さくして(2.1)にもどる。
  if y <= 0.90:
    x -= 0.01
    continue
# (2.4)yの値が0.90以上であれば、”近似解がみつかりました。解は***です”というメッセージを示して、プログラムを終了する。
  if y >= 0.90:
    print "近似解がみつかりました。解は%fです" % x
    sys.exit()

さて。書き方が不自然になったが、あえて、問題文の通りの手順でやってみた。
もしbreakを使わないといけないのだったら、使うように自分で改造してくれ。
0209見習い
垢版 |
2011/01/29(土) 15:30:57
1.半径rの円の面積の値を戻す関数carea(r)を,モジュールq1.pyに作成しなさい。また,インタラクティブモードで正しく動作することを確認しなさい。解答には,q1.pyの中身と実行結果を含めてください。

実行例 (python interactive mode)
>>> imort q1
>>> q1.carea(3)
28.274333882308138

2.r! (1x2x.......r) を計算してその値を戻す関数kaijo(r)をモジュール q2.pyに作成して、インタラクティブモードで正しく動作することを確認しなさい。解答には,q2.pyの中身と実行結果を含めてください。
実行例 (python interactive mode)
>>> imort q2
>>> q2.kaijo(4)
>>>24
3. 2で作成したkaijo(r)を利用して,nCr(注1)を計算する"スクリプト"cmb.pyを作成しなさい。nとrは下記のように、スクリプトの引数で指定するようにしてください。
また, r>nが入力された場合には下記のようなエラーメッセージが出るようにしてください。

入力値が不正です.
用法: cmp.py n r(nCr、n>=r)”
解答には,cmb.pyの中身と実行結果を含めてください。
実行例
% chmod +x cmp.py
% ./cmp.py 6 2
6C2=15
% ./cmp.py  4 5
入力値が不正です.
用法:  cmp.py n r(nCr、n>=r) ヒント:nCr=n!/(r!・(n-r)!)
0211デフォルトの名無しさん
垢版 |
2011/01/29(土) 21:08:49
>>209
1.
carea = lambda r: __import__('math').pi * r ** 2

2.
kaijo = lambda r: (lambda f, n: f(f, n))((lambda f, n: n * f(f, n-1) if n > 0 else 1), r)

3.
import sys
import q2
print (lambda n, r: '入力値が不正です.' if n < r else q2.kaijo(n)/q2.kaijo(r))(*sys.argv[1:3])
0213デフォルトの名無しさん
垢版 |
2011/01/30(日) 05:01:33
【 課題 】
コマンドラインで指定したディレクトリ(例: c:\test)について、
各サブディレクトリ毎のファイル数、ファイルサイズ(バイト単位)等を
下記(例)の様な書式でレポート出力するプログラム(s31.py)を作成する。
出力内容は次の通り。
dir はサブディレクトリ名 (ネストに対応すると得点up。その場合の書式拡張は各自考察せよ。)
files はファイル数 (ディレクトリは数えない)
dirsize は上記ファイル数のファイルサイズの合計
maxsize は上記ファイル数の中で最大のファイルのサイズ (ファイル名を行末に表記しても良い。)
ave は dirsize / files を小数点第1位まで表示
※出力例は等幅フォントです。
【 期限 】2011/01/31 15:00 まで
【 Ver  】Windows XP, Vista, 7 / Python 2.5
【 補足 】丸投げです。おながいします。

(例)
C:\Documents and Settings\Administrator>s31.py c:\test
dir: files dirsize maxsize ave
  -: 1 287581 287581 287581.0
  0: 33 2010948 231763 60937.8
  1: 1683 376414953 1410886 223657.1
...
(略)
...
  y: 3 233678 95453 77892.7
  z: 12 1259272 236288 104939.3
total = 11336
0214213
垢版 |
2011/01/30(日) 05:05:41
ageます。

出力例がずれているのですが、
html ソースを見ると空白が入っているので
恐れ入りますが空白数はそちらを参照してください。
0215デフォルトの名無しさん
垢版 |
2011/01/30(日) 05:21:43
c:\test直下のファイルとサイズは数えなくていいのか?
ディレクトリ階層全体のサイズも気にしなくていいのか?
それからtotalって何の合計?
0216デフォルトの名無しさん
垢版 |
2011/02/03(木) 23:33:36
次のスレッドタイトルは「Python の宿題ここで答えます 3匹目」にしようや。
Partだとつまんない、とRubyの宿題スレが「xx限目」ってなってるのを見て思った。
0222デフォルトの名無しさん
垢版 |
2011/02/09(水) 08:51:54
    2011年数学IIB第6問
    nを2以上の自然数とし、以下の操作を考える。
     (i)nが偶数ならば、nを2で割る。
     (ii)nが奇数ならば、nを3倍して1を加える。
    与えられた2以上の自然数にこの操作を行い、得られた自然数が1でなければ、
    得られた自然数にこの操作を繰り返す。2以上10の5乗以下の自然数から始めると、
    この操作を何回か繰り返すことで必ず1が得られることが確かめられている。
    たとえば、10から始めると
     10→5→16→8→4→2→1
    である。ただし、a→bは1回の操作で自然数aから自然数bが得られたことを意味する。
    Nを2以上10の5乗以下の自然数とするとき、F(N)をNから始めて1が得られるまでの
    上記の操作の回数と定義する。また、F(1)=0とおく。たとえば、上の例から、
    F(10)=6である。
    (1)F(6)=「ア」、F(11)=「イウ」である。
    (2)10の5乗以下の自然数Nについて、F(N)を求めるため、次のような「プログラム」を作った。
    ただし、INT(X)はXを超えない最大の整数を表す関数である。
    「プログラム」
    100 INPUT N
    110 LET I=N
    120 LET C=0
    130 IF I=1 THEN GOTO 「エ」
    140 IF INT(I/2)*2=I THEN
    150 「オ」
    160 GOTO 190
    170 END IF
    180 LET I=3*I+1
    190 「カ」
    200 「キ」
    210 PRINT "F(";N;")=";C
    220 END
0223デフォルトの名無しさん
垢版 |
2011/02/09(水) 08:52:40
    「エ」に当てはまるものを、次の0〜5のうちから一つ選べ。
    0. 130 1. 140 2. 150 3. 190 4. 200 5. 210
    「オ」、「カ」、「キ」に当てはまるものを、次の0〜8のうちから一つ選べ。
    0. LET C=1 1. GOTO 130 2. GOTO 140
    3. GOTO 210 4. LET C=C+1 5. LET I=I+1
    6. LET I=I/2 7. NEXT N 8. LET I=2*I+1
    「プログラム」を実行して、Nに24を入力すると、180行は「ク」回実行される。
    (3)Mを10の5乗以下の自然数とする。(2)で作成した「プログラム」を変更して、
    M以下の自然数Nのうち、F(N)<=10となるすべてのNについて、F(N)の値を
    出力するプログラムを作成する。そのために、まず、「プログラム」の100行を
    次の二つの行で置き換える。
    100 INPUT M
    101 FOR N=1 TO M
    さらに、210行を次の二つの行で置き換える。
    210 IF 「ケ」 THEN PRINT "F(";N;")=";C
    211 「コ」
    「ケ」に当てはまるものを、次の0〜5のうちから一つ選べ。
    0. INT(I/2)=I 1. C>10 2. M>=C
    3. N=I 4. C<=10 5. I=N
    「コ」に当てはまるものを、次の0〜5のうちから一つ選べ。
    0. LET M=M+1 1. GOTO 120 2. NEXT M
    3. NEXT N 4. LET C=C+1 5. NEXT I
    変更後のプログラムを実行して、Mに10を入力すると、210行のPRINT文は
    「サ」回実行される。

pythonで解いてみてくだされ
0226デフォルトの名無しさん
垢版 |
2011/02/13(日) 15:50:27
>>222のプログラムは
n = int(raw_input())
i = n
c = 0
while i != 1:
 c += 1
 i = 3*i+1 if i%2 else i/2
print 'F(', n, ') =', c

>>223のループ追加するとかそういうのは面倒だから自分でやれ
0227デフォルトの名無しさん
垢版 |
2011/02/14(月) 05:56:14
ありがとうございました
0228デフォルトの名無しさん
垢版 |
2011/02/14(月) 06:46:36
◆QZaw55cn4c
0229デフォルトの名無しさん
垢版 |
2011/02/17(木) 02:08:54
project euler problem02
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%202

フィボナッチ数列の項は前の2つの項の和である。最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。

(´・ω・`)再帰で書いたら深度が深すぎて怒られました。だれか教えてください。
0230デフォルトの名無しさん
垢版 |
2011/02/17(木) 02:20:00
>>229
x, y = 1, 2
sum_ = 0
while x < 400 * 1000:
    if x % 2 == 0: sum += x
    x, y = y, x+y
print sum_


def fib(stop):
    x, y = 1, 2
    while x <= stop:
        yield x
        x, y = y, x+y

print sum(x for x in fib(400 * 1000) if x % 2 == 0)

0236デフォルトの名無しさん
垢版 |
2011/02/19(土) 23:21:19.92
適当なサイトからリンク先へとどんどんクロールしたいんですがurllibとre.compile()でURL見つけて再帰処理って感じで良いでしょうか?
0237デフォルトの名無しさん
垢版 |
2011/02/20(日) 07:21:55.93
>>236
真面目に「リンク」を辿りたいならhtmlparserを使うべきだろ。
素のテキストやコメントに書かれたURLを追っかけていっちゃってもいいというやっつけ仕様なら正規表現もアリだが。
0241デフォルトの名無しさん
垢版 |
2011/02/22(火) 02:13:32.37
>>240
会社にそういったプログラムを仕事で書いてる人がいるけど
真面目に頑張るとかなり苦労するよーw
0242デフォルトの名無しさん
垢版 |
2011/02/22(火) 21:29:41.55
>>241
htmlparserってきっちり書かれたHTML以外は容赦なくはねるよね。Webクローラに使うにはちょいと実用性がアレなので、
正規表現を駆使してアバウトなHTMLでも読めるHTMLパーサを書いたことがあったが、実にしんどかった。
0246デフォルトの名無しさん
垢版 |
2011/03/01(火) 01:26:57.10
【 課題 】
以下のページにあるPythonのコードを実行してウインドウを表示させよ。
http://www.not-enough.org/abe/manual/program-aa08/pyopengl1.html

【 Ver  】Python2.7.1 OS・・・windows7-64bit、開発環境Eclipse,PyDev
【 補足 】
↓Eclipse上で実行してみると、以下のようなエラーが出たため

Traceback (most recent call last):
File "C:\Users\username\workspace\PyOpenGL\src\PyOpenGL1.py", line 3, in <module>
from OpenGL.GL import *
ImportError: No module named OpenGL.GL


↓PyOpenGLというのをDLしてみました。
http://pyopengl.sourceforge.net/
モジュール?DLしたからには、Pythonのフォルダ内かどこかに
入れないといけないのでは無いかと思うのですが
モジュールを格納してる場所がどこにあるのか分かりません。
おしえてください><
0247デフォルトの名無しさん
垢版 |
2011/03/01(火) 01:40:52.05
【 課題 】
ある 3桁の数とそれぞれの桁を逆に並べた 3桁の数を足し合わせ
それが回文数になるまで同じ操作を繰り返したとき
最も回文数になりにくい 3桁の数を見つけてください

【 Ver  】Python2.x

【 補足 】

回文数とは 44 や 363 のように逆に並べると元の数と同じ数になるものです
なお 2桁の場合は 89, 98 が最大で 24回だそうです
0248デフォルトの名無しさん
垢版 |
2011/03/01(火) 17:39:09.29
>>247
しょーがねぇ、俺がとっておきを披露してやろう。
#! /usr/bin/python
open("hello.c", "w").write('''
#include <stdio.h>
int main(void)
{
printf("hello, world.\n");
return 0;
}
''')
os.system('gcc -o hello hello.c')
os.system('./hello')
raise SystemExit
0250デフォルトの名無しさん
垢版 |
2011/03/02(水) 00:30:45.95
>>247
def reversed_num(n):
    x = 0
    while n > 0:
        n, m = divmod(n, 10)
        x = x * 10 + m
    return x

def solve(n):
    i = 0
    nn = n
    rn = reversed_num(nn)
    while True:
        if nn == rn: break
        i += 1
        nn  = nn + rn
        rn = reversed_num(nn)
    print n, i, nn

for n in range(100, 1000):
    solve(n)

馬鹿正直なコードを書いてみたけど、下から試すと196、上から試すと986で
かなり時間がかかって、ちょっと待っても戻ってこない
もっと賢いことをやらないと駄目そう
0251デフォルトの名無しさん
垢版 |
2011/03/02(水) 01:13:16.28
>>250
def reversed_num(n):
    return int(str(n)[::-1])
にしたら少しは速くなるかもしれないけど、もっと根本的な枝刈りが必要だね。
0252デフォルトの名無しさん
垢版 |
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))
0256デフォルトの名無しさん
垢版 |
2011/03/05(土) 21:50:19.02
回文数を先に抜き出して、そこから足し合わせじゃなく引き合わせにすれば速くなるか…な
0257デフォルトの名無しさん
垢版 |
2011/03/06(日) 18:48:07.22
>>247
「1の位が0」「1と10の位が0」の数についてはどう扱うべきなのかな?
たとえば100をひっくり返すと001だけど。
0262デフォルトの名無しさん
垢版 |
2011/03/07(月) 08:22:53.77
>>259
101〜999までの間に
ひっくり返したら
3桁じゃなくなる数って
そんなに多くないぞ
0266デフォルトの名無しさん
垢版 |
2011/03/08(火) 03:04:11.21
ある3桁の数(単数か複数かは不明)が回文数にならないことを証明することは出来ていないんだろうか?
0268デフォルトの名無しさん
垢版 |
2011/04/25(月) 20:07:16.29
1000回まで計算した。計算しきれなかったのは>>263と同じ。
それらがすべて、永遠に回文数にならないので解ではないなら、
23回 187 286 385 583 682 781 880
が解。特徴的。この数字はどれも、1回の操作で968になる。

>>263を、この特徴に合わせて分けると
a) 196 295 394 493 592 691 790
b) 689 788 887 986
c) 879 978
このうち、少なくともbは解じゃない。aを1回操作すると788になるから、aの方がbより1回多い。

……ここまでしか分からんかった。
0269268
垢版 |
2011/04/25(月) 20:08:36.16
誤 aを1回操作すると788になるから
正 aを1回操作すると887になるから
0271デフォルトの名無しさん
垢版 |
2011/04/27(水) 17:55:15.88
>>267
少なくとも判定は出来ると思う
3桁の数なら
「回文数になる」
「回文数になる前に(おおざっぱに)1000個の数字がすべて出てくる」
「1000個出てこなくてもどこかで同じ数字が出てきて循環する」
のどれかになるんじゃないかな
0272デフォルトの名無しさん
垢版 |
2011/04/27(水) 19:16:53.31
>>271
余りをとったり、しないんだよね。
そしたら、足すたびに数字は増えるので循環とか数字全部出るとかはありえないよ。
0276デフォルトの名無しさん
垢版 |
2011/04/29(金) 20:53:12.21
ゴールドバッハの予想
与えられた値を2つの素数の和で現してください
verは出来れば2.6で
エラトステネスのふるいを用いた素数リストを使って値を出すようにしてください
お願いします
0277デフォルトの名無しさん
垢版 |
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
0279デフォルトの名無しさん
垢版 |
2011/06/02(木) 06:22:08.84
日本の大学とかでPythonの宿題がでる(Python使って教えている)ところって多いの?
0281デフォルトの名無しさん
垢版 |
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でもこういうハッシュ+リストみたいなのを実現するにはどうやれば
いいでしょうか?
0282デフォルトの名無しさん
垢版 |
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階層で単語のタプルをキーにすることもできるね。
0283デフォルトの名無しさん
垢版 |
2011/06/14(火) 21:16:40.59
>>282
サンクス。
そっかタプルってキーにできるんですね。それがわかり易そうだなあ。
lambdaはよくわからないので・・・。
0284デフォルトの名無しさん
垢版 |
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()
0286デフォルトの名無しさん
垢版 |
2011/08/03(水) 18:11:59.06
285です。
先のcmpはsort()の名前付き引数、後のcmpはcmp関数、という事は解かりました。
ですが、やはり、ファイル全体がソートされる動作が想像できません。
0289デフォルトの名無しさん
垢版 |
2011/08/03(水) 21:03:18.52
>>286
sort()の中でリストの要素同士の大小比較をするときに、cmp引数で指定された比較関数を呼び出して
比較しているから、cmp引数でソートの挙動をカスタマイズできるんだよ。
文字列全体じゃなくて一部分だけを比較のキーにする、みたいに。
ちなみにcmp引数に何も指定しないと、要素そのものをキーとして組み込み関数のcmp関数を呼ぶ。
0290289
垢版 |
2011/08/03(水) 21:07:06.99
補足しておくと、昔はともかく今のPythonでこんなげろんちょな比較関数を書く必要は無い。
sort()にkey引数ってのが導入されて、リストの要素からソートキーを得る関数を指定できる。
もちろん、指摘しなければリストの要素がそのままソートキーになるんだけど。

つまり>>286と全く同じことを
lines.sort(key = lambda x: x[10:15] + x[0:9])
と書ける。
0291286
垢版 |
2011/08/04(木) 17:36:23.52
>>289
>>290
ありがとうございます。
>lines.sort(key = lambda x: x[10:15] + x[0:9])
こちらはソートのキー指定をしている事が、直感的に納得できました。こちらを使います。
0292デフォルトの名無しさん
垢版 |
2011/10/04(火) 08:58:36.28
 ̄( ̄( ̄(A ∩ B) ∩ A) ∩  ̄( ̄(A ∩ B) ∩ B))
0293デフォルトの名無しさん
垢版 |
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のように置き換えたいです。
0294デフォルトの名無しさん
垢版 |
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)
0300299
垢版 |
2011/11/17(木) 23:40:57.76
299です。[1,2,3,4,5..,10]みたいな感じのリストになるようにお願いします。
0304299
垢版 |
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行で済んでしまうとは驚きです。また勉強します。ありがとうございます
0308営利利用に関するLR審議中@詳細は自治スレへ
垢版 |
2012/04/07(土) 10:43:20.79
・1から2000までの数字が昇順に格納された
要素2000個の配列を用意
・乱数にて1から2000までのキー値を生成し、
上記配列を二分探索で探索してキー値を見つけるまでの
探索回数を記録
・以上を1000回繰り返し、平均探索回数を算出
・上記の平均探索回数を、理論値log2・2000と比較して示せ

という宿題を出されたのですが、まるでわかりません。
よろしくお願いします。
0311308
垢版 |
2012/04/08(日) 01:03:06.69
自力で(というか、入門書とWEBを漁りまくって)
12時間かけて何とかできました。疲れた…
要素数と試行回数を指定できるように作ったので
よければ遊んでみてください。

http://codepad.org/RaKvygkr
0312営利利用に関するLR審議中@詳細は自治スレへ
垢版 |
2012/04/08(日) 11:12:00.89
いやです
0314308
垢版 |
2012/04/16(月) 00:23:02.09
あやー
見てくれる人いたんですか。
あれからちょこちょこいじっているので
URL変わっちゃってます。

http://codepad.org/oX8W6350

しかし、こうして探索している様子がわかると面白いですね。
こんな半分ずつ探索範囲を狭めていくやり方で
漏れなく見つかるんだって感動する。
0315デフォルトの名無しさん
垢版 |
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)
0316デフォルトの名無しさん
垢版 |
2012/05/22(火) 22:56:27.95
|....,,__
|_::;; ~"'ヽ
| //^''ヽ,,)
|  i⌒"
| ∀`) < 誰もいない きのこるならいまのうち
|⊂
| ノ
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      |( ´∀`) < きのこ のこーのこ げんきのこ ♪
      |(ノ   |つ
      |     |
     ⊂ _ ノ
       ""U
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
     (´∀` )| < エリンギ まいたけ ブナシメジ ♪
    ⊂|  (ノ |
      |     |
      ヽ _ ⊃
      .U""
|
| ミ
| ミ  サッ!
| ミ
|
0318uy
垢版 |
2012/05/23(水) 12:04:58.26
range(1, 5)

これがPythonはダメだよな
0322デフォルトの名無しさん
垢版 |
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()
0324デフォルトの名無しさん
垢版 |
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
宜しくお願いします。
0330デフォルトの名無しさん
垢版 |
2012/09/18(火) 00:51:59.75
自分の経験では

color = green
if status != good:
    colour = red
display(status, color)

みたいなのを書いて、えらい目にあったことがある。
動的すぎるのも考えものだわ。

strict とブロックスコープ、あと無名関数は Perl のほうがいいね。
0332デフォルトの名無しさん
垢版 |
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] その他の制限:特になし
0335332
垢版 |
2012/10/02(火) 15:07:27.09
>>333
山(N)が与えられた時点で、先手が勝ちか後手が勝ちかは決まるとのことです。

>>334
すみません。条件を書き忘れました。
この問題は数の範囲に小数点以下も含んでおります。

0337332
垢版 |
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の間違いです。すみません。。
0339332
垢版 |
2012/10/02(火) 15:56:04.78
>>338
X=5でした。
テンパっておりまして…すみません。
0340デフォルトの名無しさん
垢版 |
2012/10/05(金) 02:03:33.61
332の問題、期限切れみたいだけど添削お願いしたい

http://ideone.com/sWfE6

(1) 値を減少させる関数と勝敗判定の関数を書き出した
(2) >>337 のパターン ア-オを assert 文で列挙
(3) 判定関数を再帰で実装

0342デフォルトの名無しさん
垢版 |
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
【 補足 】
壁を#、道をスペースで表示してください。

よろしくお願いします。
0344デフォルトの名無しさん
垢版 |
2012/11/15(木) 23:48:12.06
そもそも「再帰分割法を利用した迷路作成」は
解く側から見て
「最初に経路の目星を付け易い」
という欠点があるよ
0345デフォルトの名無しさん
垢版 |
2013/02/19(火) 13:07:06.40
test
0347デフォルトの名無しさん
垢版 |
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

よろしくお願いします。
0348デフォルトの名無しさん
垢版 |
2013/02/24(日) 14:42:04.44
>347
入力が1のときには出力は3x3で
2のときには5x5だとすると
入力がnのときには出力は(2n+1)x(2n+1)でいいのかい?
0352デフォルトの名無しさん
垢版 |
2013/02/24(日) 16:19:09.96
>>348
それで良いです。
余力があれば偶数のもおながいします。

>>349
すみません。間違いです。
でも答えが判ってると面白く無いので。

>>350
出来れば全部でおながいします。

>>351
とりあえずそれで良いです。
余力があれば対角線以外の斜め合計?も一致するパターンのもおながいします。
0355デフォルトの名無しさん
垢版 |
2013/03/09(土) 00:03:45.54
宿題スレは終了

終了終了終了終了終了終了終了終了終了終了終了終了
終了終了終了終了終了終了終了終了終了終了終了終了
終了終了終了終了終了終了終了終了終了終了終了終了
終了終了終了終了終了終了終了終了終了終了終了終了
0356デフォルトの名無しさん
垢版 |
2013/03/09(土) 00:18:14.38
1 宿題の丸投げという行為はカンニングと同等。学則による処分の対象
2 丸投げした質問者もそれを知って回答した回答者も大学の単位認定業務の
 妨害、すなわち偽計業務妨害
3 宿題の問題は著作物であり、それをアップローダやスレに投稿する事は
 公衆送信権の侵害。うpを唆しているテンプレは著作権侵害の教唆

違法行為が前提で成り立つスレなので、次スレは立てずにこのスレで終了
0358デフォルトの名無しさん
垢版 |
2013/03/09(土) 06:43:42.42
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!
0360デフォルトの名無しさん
垢版 |
2013/08/04(日) NY:AN:NY.AN
任天堂のサイトの問題ですが
http://cp1.nintendo.co.jp/2012

$ python SimpleBarsTest.py
test_loop (__main__.testSimpleBars) ... ok
test_simple_rule (__main__.testSimpleBars) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

テストコードまでOKなんですが、
answerを出したのですが違っているようなんです。
この問題を解いた方がいましたら少し教えてもらえませんでしょうか。
0361デフォルトの名無しさん
垢版 |
2013/08/04(日) NY:AN:NY.AN
>>360ですが
解決しました。
0362デフォルトの名無しさん
垢版 |
2013/08/13(火) NY:AN:NY.AN
今までC言語しかやったことなくて、Pythonは初めてです。よろしくお願いします。

【 課題 】
g(x_1,x_2,...,x_n)=f_a(X_a)f_b(X_b)...f_k(X_k)
と書けるとする.ただし,X={x_1,x_2,...,x_n},X_aやX_bはXの部分集合である.

確率伝播法(Sum-Product Algorithm)によって,周辺化関数の計算量が減少していることを示すプログラムをかけ.
ただし,計算量は(足し算を行う回数)と(掛け算を行う回数)の和とする.
また,関数g,f_a,f_b,...,f_kはプログラムの中で定義すること.
例:g=x(y+z),f_a=x,f_b=y+z などとプログラムに書き,その時の周辺化関数の計算量について調べる

ヒント:このプログラムにおいて,
入力:関数gやf_a
出力:確率伝播法を使う前の計算量&使ったあとの計算量
だが、計算量をはかる代わりに、確率伝播法を使ったあとの方が
「計算にかかった時間」が短ければそれで計算量が減少したことを示せる.

【 用語 】
簡単な定義と例はこちらで.簡単に作成しました.
https://docs.google.com/file/d/0BwsJZI6jzfNzMnV3dUVvazBGODA/

【 期限 】期限:8/18
【 Ver  】Python2.3 か Python3.3 OS:Windows7
【 補足 】初心者なんでお願いします.Pyscripterというのを使っています.
0363デフォルトの名無しさん
垢版 |
2013/08/13(火) NY:AN:NY.AN
>362
専門的なのでよく分からない。
Cで書いてくれたらPythonに焼き直すことができるかもしれない。
0365デフォルトの名無しさん
垢版 |
2013/08/27(火) NY:AN:NY.AN
ちょっとどうすればいいかわからない課題出た助けて
【 課題 】
n個の変数列[x_1,x_2,...,x_n]を考える.
x_1が取り得る値を適当に決める.x_1からx_nまですべての変数について行う.
この時,iを与えた時の次のIの値を求めなさい:
I=這這...杷(x_1,x_2,...x_n),ただし狽フ数はn-1個.x_iについてのみ和を
取らない.

例:
f(x_1,x_2,x_3)=x_1 + x_2 ^ 2 + x_3 ^3
x_1 = [ 0,1,2 ]
x_2 = [ 3,8 ]
x_3 = [-5,10]
i = 1 を与えたとき,
I=(x_2)について(x_3)について f(x_1,x_2,x_3)
= f(x_1,3,-5)+f(x_1,3,10)+f(x_1,8,-5)+f(x_1,8,10)
= x_1 + 3^2 + (-5)^3
+x_1 + 3^2 + (10)^3
+x_1 + 8^2 + (-5)^3
+x_1 + 8^2 + (10)^3
=x_1 + 9 - 125 + x_1 + 9 + 1000 + x_1 + 64 - 125 + x_1 + 64 + 1000
= 3* x_1 + 1896
よって、 I = 3* x_1 + 1896 を出力させるようなプログラムを作って欲しい.

【 期限 】提出期限:9/1 00:00
【 Ver  】Python:2.7 OS:Windows 7
【 補足 】よろしくお願いします
0366デフォルトの名無しさん
垢版 |
2013/08/28(水) NY:AN:NY.AN
すまん>>365だが,
I=4*x_1 +1896だったわ
0367デフォルトの名無しさん
垢版 |
2013/10/16(水) 13:10:13.21
【 課題 】 高さh、質量m、初速度vを入力して、物体の軌跡を計算し、グラフを描画(SVGファイルを出力)する。
例:
高さ30mの位置から質量1.0kgの球を鉛直下向きに4.9m/sで投げ上げた。

高さ=30
質量=1000
初速度=-4.9
グラフをSVGファイルに出力

【 Ver  】 Python:2 / ReportLab
【 期限 】 10月21日まで
【 補足 】 誰かお願いします。
0368デフォルトの名無しさん
垢版 |
2013/10/16(水) 13:12:26.60
鉛直下向きに投げ上げた
鉛直下向きに投げ上げた
鉛直下向きに投げ上げた
鉛直下向きに投げ上げた
鉛直下向きに投げ上げた
0370デフォルトの名無しさん
垢版 |
2013/10/16(水) 15:42:25.58
放物線にすらならんな

縦に一本線引けば正解じゃね?
0372デフォルトの名無しさん
垢版 |
2013/10/16(水) 17:16:35.02
やってみた

from reportlab.graphics import renderSVG
from reportlab.graphics.shapes import Drawing, Polygon
from reportlab.lib import colors

drawing = Drawing(640, 480)
drawing.add(Polygon((320, 240, 320, 480), strokeColor=colors.red))
renderSVG.drawToFile(drawing, 'out.svg')
0374デフォルトの名無しさん
垢版 |
2014/11/06(木) 21:17:28.74ID:iaZsweTc
パイソンの宿題なんて出ないだろ
0375デフォルトの名無しさん
垢版 |
2014/11/06(木) 21:29:40.06ID:miTuc3N+
コードが汚い言語だなあ。

ruby以上かも
0378デフォルトの名無しさん
垢版 |
2014/12/12(金) 14:34:25.32ID:CzzuFy7o
python初めて数日だけど、チョット気に入った。
perlみたいに取って付けたオブジェクト指向じゃなて、初めからしっかりサポートしてる感じでいいね。
idleもいいよ、タブでメソッドがずらーーってでるからね。VBライクだね。
0380実は男
垢版 |
2015/04/28(火) 22:33:15.42ID:iGmhRd88
ぱいそんそわそわ
フォロリクよろしく(^з^)-☆

ややちゃん♂
https://twitter.com/minwqgmg

#ややちゃんかわいい
ややちゃんよりかわいいMTFなどいない
http://i.imgur.com/L7IX75Q.png
http://i.imgur.com/lkujqEZ.png
https://pbs.twimg.com/profile_images/590714340384382977/3_IE5FW8.jpg
http://i.imgur.com/t1dy6yB.jpg

#百合原まこきもいしね
http://light.dotup.org/uploda/light.dotup.org175301.jpg
https://twitter.com/mako_yurigahara
0381デフォルトの名無しさん
垢版 |
2015/08/23(日) 23:49:10.69ID:PbpBqDen
【 課題 】ランダムに生成される、真上から見た水面のランダムな大きさの波紋を描きなさい。
【 Ver  】python2.7もしくはそれに対応するpygame
【 期限 】特にありませんが、どうか年内にはお願いしますm(-_-)m
【 補足 】特に指定はありませんが、イメージとしてElonaのスタート画面やGBAポケモンの雨の日の水面みたいな感じでいいと思います。

どうかご教示ください!
0382デフォルトの名無しさん
垢版 |
2015/08/23(日) 23:53:12.05ID:PbpBqDen
すみません、あげ忘れてしまいました
0383デフォルトの名無しさん
垢版 |
2015/08/24(月) 01:30:43.89ID:oXrBlXgJ
宿題は自分でやれ
0385デフォルトの名無しさん
垢版 |
2015/08/24(月) 01:37:58.89ID:oXrBlXgJ
漏れの宿題は別にあるから
君が手伝ってくれてもいいんだよ
0390デフォルトの名無しさん
垢版 |
2015/08/24(月) 12:36:18.06ID:kJfnTBJK
波紋とは、円の中心点に、石を落とした際、
円が外へ広がっていくことか?

一番内側の円1の半径が、20pxとして、
円2は40px、円3は60px、円4は80px、円5は100pxとする

0.5秒毎に描画する。各円は、3回まで描く

タイミング(秒)と、描く円の番号
0.5 1
1.0 2
1.5 1,3
2.0 2,4
2.5 1,3,5
3.0 2,4
3.5 3,5
4.0 4
4.5 5
0392デフォルトの名無しさん
垢版 |
2015/08/30(日) 22:44:53.33ID:ea9YWI3+
あれこれやってたら結構時間かかりましたが出来ました
errorって出てますが、pygameで走らせると動きます
採点お願いします!

http://ideone.com/ZBreYa

もしももっとリアルな感じにしたり色を工夫したりできるようでしたらどなたかご指摘・ご修正お願いします
0393デフォルトの名無しさん
垢版 |
2015/09/01(火) 16:51:42.91ID:knZ8BFh/
正規表現で <img から始まって/> で終わるその間の文字を抜き出すのってできますか?
できるならば参考になる関数などを教えてください!!!!!
0395デフォルトの名無しさん
垢版 |
2015/09/02(水) 10:50:27.76ID:dS5BjdDw
>>394
ありです!大好き!
0396デフォルトの名無しさん
垢版 |
2015/09/02(水) 12:01:17.47ID:eDqiT8Wq
>>394
^<img.*/>$

^ は行頭指定だから、< が行頭
$ は行末指定だから、> が行末

これで良いのか?
行頭・行末に限定しないのなら、^, $ を削除しな
0397デフォルトの名無しさん
垢版 |
2015/09/02(水) 12:07:12.87ID:dS5BjdDw
了解です!
0400デフォルトの名無しさん
垢版 |
2016/01/02(土) 15:00:56.83ID:dDeNCcj5
めりくりおめあけ
0401デフォルトの名無しさん
垢版 |
2016/07/18(月) 03:52:39.30ID:IfBRz4xC
xと1以上の整数nを入力としてx^nを計算する時間計算量がO(logn)の再帰的アルゴリズムを求めよ
nは必ずしも2のべきではない
0404デフォルトの名無しさん
垢版 |
2016/11/12(土) 15:53:33.43ID:iIIN13+Z
test.txtには10000人分のテストの点数が記されている
このファイルを使い
テストの平均点を求め
average.txtというファイルに平均点を書き込むを作成する

python でよろしくおねがいします。
0405デフォルトの名無しさん
垢版 |
2018/01/25(木) 02:03:39.06ID:KWt8t+zY
てst
0407デフォルトの名無しさん
垢版 |
2018/05/23(水) 20:38:17.17ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

R9Z7J
0408デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:14:44.10ID:RfoszcD2
QON
0409デフォルトの名無しさん
垢版 |
2018/08/31(金) 17:57:37.04ID:/xTCWZjj
このスレのフランス語版作れば
向こうの小学生達が喜ぶだろうな
0410デフォルトの名無しさん
垢版 |
2018/09/14(金) 09:34:01.32ID:99QJz/Nl
anaconda初めました、質問お願いできませんでしょうか。

スパイダーを起動すると、セキュリティソフトから20回以上セキュリティ関係や色々な所にプロセスやレジストリキーを埋め込もうとしています。〜に送信しようとしていますって出るんですけど、これって普通ですか?

プロンプトは何も出てきません、長文すいません、よろしくお願いいたします。
0411デフォルトの名無しさん
垢版 |
2019/01/24(木) 21:59:25.98ID:RFJSFOxB
https://github.com/ayooshkathuria/pytorch-yolo-v3/blob/master/cam_demo.py

このスクリプトを手元PCのカメラで自動検知させてる時に personが複数人表示された時にアラートを表示させるにはどうすればいいですか?

Version3.6で
openCVとかも入っておりバッチリ動作はします
0413デフォルトの名無しさん
垢版 |
2019/06/26(水) 20:03:56.18ID:t5hjtgZo
各自が設定した問題やゲームについて、「条件分岐(if文)」、「反復処理(for文またはwhile文)」、「何かしらのデータ構造」、「関数」、 をすべて用いて、解を出力するプログラムを作成せよ。
注意:
・プログラムコードは100行以内におさめて、そのままコピーすれば教員TAが実行できるように記述すること
・コメント文(#を使う)でプログラム中の変数や関数の説明を行うこと
・何を入力し何を解くプログラムなのか必ず説明すること
0414デフォルトの名無しさん
垢版 |
2019/06/26(水) 23:25:57.11ID:Y3pTO8/n
>>401
これで大丈夫?
def exp(n, x, cash = 1):
cash = cash * n
if n ==1:
print cash
return
exp(n-1, x, cash)

exp(179, 1926)
0417デフォルトの名無しさん
垢版 |
2019/06/28(金) 04:44:14.60ID:HtnZs4zo
3年前の夏に宿題だと質問者は卒業しているかも。
間に合えばいいんだが。。。

デジタル記録の弊害かもな。過去が鮮明に残り過ぎて時の経過感覚が鈍くなる。
ふと気がついたらあれから10年、みたいな。
0418デフォルトの名無しさん
垢版 |
2019/07/12(金) 17:27:50.65ID:kugxrC9F
matplotlibでグラフ書いたけど、y軸の目盛りを任意の値にするにはどうしたらよい?
せめて最大値最小値は目盛りで記したい
0419デフォルトの名無しさん
垢版 |
2019/09/03(火) 00:35:09.33ID:i5v6C5Vu
>>418

これ参考にどうぞ
ttps://qiita.com/ynakayama/items/aec4e962d738d24641ee
0420デフォルトの名無しさん
垢版 |
2021/01/14(木) 17:59:41.21ID:ZgCcmsal
test
0421デフォルトの名無しさん
垢版 |
2022/10/04(火) 12:03:32.83ID:/nigzy8D
質問です
sagemathというpythonを利用した数式処理系についての質問です
pythonには3d graphicsの“polygon3d”という関数が作りたい面のリストと点の座標のリストを与えるといわゆる“polygon”を作ってくれます

しかしコレ第1引数の“面の指定”が鬱陶しいです
第2引数の点のリストの要素番号で指定しないといけません
できれば“点そのもののリスト”で指定したいのです
つまり↓
v= [A,B,C,D,E,F,G,H]
#f = [[A,B,F,E],[B,C,G,F],[C,D,H,G]] # can't work
f = [[0,1,5,4],[1,2,6,5],[2,3,7,6]] # work
でコメントアウトしてるような指定がしたいのです
つまり自分でpolygon3'みたいな関数で
fig = polygons3d'(
[[A,B,F,E],[B,C,G,F],[C,D,H,G],
opacity=0.3,color = 'green')
)
みたいな形で使えるものが作れないでしょうか?
よろしくお願い致します
0422デフォルトの名無しさん
垢版 |
2022/10/04(火) 12:03:39.61ID:/nigzy8D
https://sagecell.sagemath.org/?z=eJxVkM-KgzAYxO-C7xDoQcWhVLvtnnKo_99BPLjWqqskEsXSt98vZhe6hISPyW8mQ26Ms61tVqnc8gRalWdb0ZsY_InJOxgYLf1vDrTmxsiQo_AoxI18ljBEfko7oZM2Iba1cVbeECFGgtTwlW0dHuQp94sMaYVSAzkymjRYIK8qdmBNLZyVPaUabcs4dKELPogLEOKKC00hzvjEdXf8skMX8FlOr06K5Xx3H2Ab5Fw3w_rip-MZjZykokCnU20rHG-3hHwaREt4aeoWuhGVNi1zxBXWfmhG0S4LD00Gd76muhl1gqtf9XWOd1x6-XRnJb_pzwYpuCPV2stO1TMFON4PquZrnA==&lang=sage&interacts=eJyLjgUAARUAuQ==

A = vector([0,0,0])
B = vector([1,0,0])
D= vector([0,1,0])
E= vector([0,0,1])
(C,F,G,H) = (B+ D ,B+E,B+D+E,D+E)

v= [A,B,C,D,E,F,G,H]
f = [[0,1,5,4],[1,2,6,5],[2,3,7,6]]
fig1=polygons3d(f, v,opacity=0.3,color = 'green')
fig2=line3d([B,C,D,H,G,F,E,A,B,F,G,C],thickness=2,color='black')
(fig1+fig2).show(projection='orthographic')
0423デフォルトの名無しさん
垢版 |
2023/02/10(金) 09:07:05.21ID:gG40szYt
2023/02/04 25:00 MASA ITO PAUL GILBERT
2023/02/04 25:05 HANGAR 18 MEGADETH
2023/02/04 25:14 DISSONANCE LOVEBITES
2023/02/04 25:31 SYMPTOM OF THE UNIVERSE BLACK SABBATH
2023/02/04 25:39 ENEMY OF GOD KREATOR
2023/02/04 25:55 GASLIGHT THE WINERY DOGS
2023/02/04 26:05 KILLING ME KILLING YOU SENTENCED
2023/02/04 26:18 MINE HALESTORM
2023/02/04 26:32 BATTLE FROM WITHIN CYHRA
2023/02/04 26:39 6:00 DREAM THEATER
2023/02/04 26:47 TAURUS HAKEN
2023/02/04 26:56 CALL OF THE NORTH FROZEN CROWN
2023/02/04 27:08 MEGALOMANIAC ASCENSION
2023/02/04 27:13 BLOOD OF EMERALDS GARY MOORE
2023/02/04 27:33 HOLIDAY ALTER BRIDGE
2023/02/04 27:37 FANGS (LIVE) OUTRAGE & OUTRAGEOUS PHILHARMONIC ORCHESTRA
2023/02/04 27:37 FANGS (LIVE) OUTRAGE & OUTRAGEOUS PHILHARMONIC ORCHESTRA
2023/02/04 27:42 TIMEZONE MANESKIN
2023/02/04 27:47 RISING TIDE RONNIE ATKINS
2023/02/04 27:52 MURDERER HELLOWEEN
2023/02/04 27:56 SAME OLD STORY STRYPER
2023/02/04 28:05 TWO WORLDS XANDRIA
2023/02/04 28:15 CARNAGE (LIVE) MAYHEM
2023/02/04 28:20 THE SCARECROW MYSTIC CIRCLE
2023/02/04 28:29 RIDING WITH THE ANGELS RUSS BALLARD
2023/02/04 28:33 MASTER BUILDER GONG
2023/02/04 28:42 THE GLORIOUS OM RIFF STEVE HILLAGE
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況