【问题标题】:Python: Finding the product of randomly generated integersPython:查找随机生成的整数的乘积
【发布时间】:2013-04-08 23:15:46
【问题描述】:

还有一个问题。我是 CS 一年级学生,必须在纸上完成这项工作,所以我无法导入任何程序来解决问题。

我被要求创建一组伪随机整数,然后使用函数 def product (n) 将整数的乘积相乘。我知道这段代码真的错了,但我根本不知道该怎么做!这是我目前所拥有的:

def product(n):
    product = j*i
for j in range (20):
    i=random.randrange(1,4,1)
    print ("The set of numbers is", i)

【问题讨论】:

  • n 代表什么?
  • 为什么在得到两个数字之前要相乘?您是否了解程序通常按照其行的编写顺序执行?
  • 我才上这个班3周,我不知道我在做什么......对不起,我被这个问题弄傻了。 :(
  • 您的代码缩进不良。未使用的变量 n,未定义的 i。

标签: python function dice


【解决方案1】:

你想要什么?乘以整数并显示他们的产品?看到这个:

def product(numberOfIntegers) :
   finalResult = 1
   for i in range(1,numberOfIntegers) :
      randomNumber = random.randrange(1,4,1)
      finalResult = finalResult * randomNumber
   return finalResult

【讨论】:

    【解决方案2】:

    我会去

    import random
    def product(n):
        return reduce(lambda x,y:x*y,(random.randint(1,3) for i in xrange(n)))
    

    几件事:

    1. 如果不导入或编写自己的伪随机生成器,就无法真正生成随机数
    2. 查找reduce。这可能是这里的首选方法。
    3. 如果可以导入operator 模块,请使用operator.mul 而不是lambda x,y:x*y

    【讨论】:

      【解决方案3】:

      如果n是生成数字的个数:

      import random
      def product(n):
          random_list = [random.randint(0,n) for r in xrange(n)]
          return reduce(lambda x,y : x*y,  random_list)
      

      【讨论】:

      • 你也可以使用reduce(operator.mul, ...)
      • 好评论,但由于他是新人,我想更清楚一点。 reduce + lambda + 列表理解...
      【解决方案4】:

      您没有指定整数的范围,但我认为这可以满足您的要求:

      import random
      
      def product(n):
        lower_bound = 1
        upper_bound = 10
        result = 1
        for i in range(n):
          result *= random.randint(lower_bound, upper_bound)
        return result
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-09
        • 2014-08-22
        • 2014-10-24
        • 1970-01-01
        • 2014-10-06
        • 1970-01-01
        相关资源
        最近更新 更多