擅长:python、mysql、java
<p>要求用户提供逗号分隔的边数,然后使程序适用于任意边数的骰子:</p>
<pre class="lang-py prettyprint-override"><code>from collections import defaultdict
from random import randint
import matplotlib.pyplot as plt
NUMBER = 1000 # How many times it's rolled
# Asking for the sides
dice = input("What dice to use? (comma-separated, e.g. 6,8,10): ")
try:
dice = [int(item) for item in dice.split(",")]
except ValueError:
print("Error: input", dice, "is not comma-separated integers.")
exit(1)
sums = defaultdict(int)
for _ in range(NUMBER):
roll_result = [randint(1, m) for m in dice]
sums[sum(roll_result)] += 1
plt.bar(list(sums.keys()), sums.values(), color='b')
plt.xlabel('Result')
plt.ylabel('Frequency of Result')
plt.grid(axis='y', alpha=0.5)
plt.show()
</code></pre>
<p>例如:</p>
<pre><code>$ python dice.py
What dice to use? (comma-separated, e.g. 6,8,10): 8,8,10,24
<displays a plot>
</code></pre>