2013-04-16 5 views
0

한 번 더 질문. 나는 종이로 이것을해야만하는 1 학년 CS 학생이며, 그래서 문제를 해결하기위한 어떤 프로그램도 가져올 수 없습니다.Python : 무작위로 생성 된 정수의 결과 찾기

정수의 가짜 임의 집합을 작성한 다음 함수 정의 곱 (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) 
+6

'n'은 무엇을 나타내는가요? –

+0

당신은 왜 그것을 갖기 전에 두 개의 숫자를 곱합니까? 프로그램이 일반적으로 행이 기록 된 순서대로 실행된다는 것을 알고 있습니까? – kindall

+0

3 주 동안 만이 수업을 들었고 어떤 일을하고 있는지 잘 모르겠다. 죄송합니다. 나는이 문제에 당황 스럽다. : –

답변

1

당신은 정수의 범위를 지정하지 않았지만, 나는 이것이 당신이 원하는 것을 생각 : 생성 된 번호의 숫자가

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 
0

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) 
+0

'reduce (operator.mul, ...) '도 사용할 수 있습니다. – jamylak

+0

좋은 의견이긴하지만 새로 왔으므로 더 명확히하고 싶습니다. reduce + lambda + list comprehension ... – Ofiris

1

내가

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
0

무엇을 원하세요? 정수 곱하기 및 제품 표시? 보기 :

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