2

Python で 2 つの非常に小さなロジック アプリケーションを作成するのに苦労しています。私はプログラミングに非常に慣れていないので、経験のある人にとっては非常に簡単になる可能性があるため、あなたのガイダンスの一部を間違いなく使用できます。

1つ目は、プログラムに入力された数値に基づいて統計方程式を計算し、結果を小さなテーブルに出力する小さなプログラムです。タスクの PDF は次のとおりです。

http://xboxflashing.com/cw2010.pdf

タスク 1 の最後の部分を除くすべてを実行できました。範囲を設定する方法がわからないことを除いて、すべて正常に動作します。if / elif セットアップを行い、カウントに追加して (範囲内の数をカウントするため)、表の見出しの下にカウントを表示しましたが、表示される結果は常に正しくありませんでした。したがって、私はこれについて間違った方法で行っているか、物事を過度に複雑にしている可能性があると推測しています。

これについてのアドバイスは大歓迎です。

第二に、振り子のタスクは私の頭を悩ませています。私は Python の経験が非常に限られているため、質問されているコードを設定する方法を理解するのに苦労しています。

物事を設定する方法を教えていただければ、それは驚くべきことであり、私にとって大きな助けになります. 私は実際の答えを探しているわけではありません。教科書で自分で構文を見つけることができます。ソリューションの設定を開始する方法について本当に助けが必要です。タスク 2 に関するヘルプは、私にとって非常に有益です。

お時間をいただきありがとうございます。

さらに情報が必要な場合は、お知らせください。

4

2 に答える 2

1

これはどう?

n = int(raw_input("How many numbers?"))
nums = []
for i in range(n):
    nums[i] = float(raw_input("Enter %i th numnber >" %i))
s = sum(nums)
s2 = sum(map(lambda x:x*x,nums))
mu = s/n
mu2 = s2/n
sigma = (mu2-mu)**(0.5)
error_in_mean = sigma/(n)**(0.5)

print "x_i\tx_i-mu\t(x_i-mu)/sigma"
for x in nums:
    print "%f\t%f\t%f" %(x,x-mu,(x-mu)/sigma)

absdiff = map(lambda x:abs(x-mu),nums)
n_0 = sum(map(lambda x:(x<=sigma) , absdiff))
n_1 = sum(map(lambda x:(x>sigma)and(x<=2*sigma) , absdiff))
n_2 = sum(map(lambda x:(x>2*sigma)and(x<=3*sigma) , absdiff))
n_3 = sum(map(lambda x:(x>3*sigma) , absdiff))

print "Within 1 sigma: ",n_0
print "Between 1 and 2 sigma: ",n_1
print "Between 2 and 3 sigma: ",n_2
print "Beyond 3 sigma: ",n_3
print "Within 1 sigma: ",n_0
于 2011-01-14T20:33:36.357 に答える
1

最初の問題については、追加機能のない単純な実装です。

numbers = []    
n = int(raw_input("Enter the amount of numbers: "))
for i in range(n):
    num = float(raw_input("Enter number %d: " % d))
    numbers.append(num)

# Calculate the statistical values here

within_1_stddev = 0
within_2_stddev = 0
within_3_stddev = 0
outside_3_stddev = 0

for num in numbers:
    if (avg - stddev) <= num < (avg + stddev):
        within_1_stddev += 1
    elif (avg - 2 * stddev) < num <= (avg - stddev) or (avg + stddev) <= num < (avg + 2 * stddev):
        within_2_stddev += 1
    elif (avg - 3 * stddev) < num <= (avg - 2 * stddev) or (avg + 2 * stddev) <= num < (avg + 3 * stddev):
        within_3_stddev += 1
    else:
        outside_3_stddev += 1

# Output here

2番目のものについては、簡単ではありません.pyplotlibは時々非常に圧倒される可能性があるという単純な理由で、私自身が好きではありません。確かに何でもできますが... :)

# Imports here

# Make a small menu here that sets the initial variables, with raw_input and
# a simple if-else structure, I guess?

timesteps = []
omegas = []
thetas = []

# Here goes the code from the PDF, but inside the loop add something like
    timesteps.append(t)
    omegas.append(omega)
    thetas.append(theta)

# Now you have the time, omega and theta in corresponding indexes at the
# timesteps, omegas and thetas variables.

# Do the plot here (consult the tutorial as suggested in the PDF)
# pyplot.show() (if I remember the name correctly) might be quite helpful here
于 2011-01-14T20:35:30.290 に答える