01%20python/03.05%20%EB%82%9C%EC%88%98%20%EB%B0%9C%EC%83%9D%EA%B3%BC%20%EC%B9%B4%EC%9A%B4%ED%8C%85
Opened this issue · 8 comments
coin=np.array([1,0])
ex1=np.random.choice(coin,10,replace=True,p=[0.5,0.5])
print(ex1)
dice=np.array([1,2,3,4,5,6])
ex2=np.random.choice(dice,100,replace=True,p=[1/6,1/6,1/6,1/6,1/6,1/6])
print(ex2)
np.random.seed(0)
a=np.random.randn(250)
percentage=a/100
price=[10000+percentage[0]*10000]
for i in range(1,len(percentage)):
Dprice=price[i-1]+price[i-1]*percentage[i]
price.append(Dprice)
print(price)
3.5.1
1)
coin = np.random.choice(2, 10, p=[0.5, 0.5])
coin
2)
dice = np.random.randint(1, 7, 100)
dice.mean()
3.5.2
n = 10000
x = np.random.randn(250)
for i in x:
n = n * (1 + (i / 100))
print("{:,}원".format(round(n)))
from time import time
import numpy as np
print(f"연습1.1) 동전을 10번 던져 앞면(숫자 1)과 뒷면(숫자 0)이 나오는 가상 실험을 파이썬으로 작성한다.\n
연습1.2)주사위를 100번 던져서 나오는 숫자의 평균을 구하라.")
def coinRun(cnt):
randseed = (int)((str)(time()).split('.')[1])
print(f"randseed={randseed}")
np.random.seed(randseed)
x = np.random.choice(np.array(['앞', '뒤']), 10, replace=True)
print(f"coinRun X---{x}")
return x
def diceRun(cnt):
randseed = (int)((str)(time()).split('.')[1])
print(f"randseed={randseed}")
np.random.seed(randseed)
p = np.array([0])
print(p, type(p), len(p))
for i in range((int)(cnt)):
x = np.random.choice(np.array([1, 2, 3, 4, 5, 6]), 1, replace=True)
print(f"diceRun---{x}")
p = np.hstack([p, x]) if len(p) != 1 else x
print(p)
a = np.mean(p)
return a
print(f"1.1 my answer: ==>{coinRun(10)}")
print(f"1.2 my answer: ==>{diceRun(100)}")
print(f"연습2) 가격이 10,000원인 주식이 있다.\n
이 주식의 일간 수익률(%)은 기댓값이 0%이고 표준편차가 1%인 표준 정규 분포를 따른다고 하자.\n
250일 동안의 주가를 무작위로 생성하라")
def makestockval(initialcost, days, p):
todayStockprice = initialcost
addStockprice = 0
for i in range(days):
randseed = (int)((str)(time()).split('.')[1])
print(f"randseed={randseed}")
np.random.seed(randseed)
rate = np.random.randn(100)
print(rate)
print(f"(int)(randseed % 100)=={(int)(randseed % 100)}")
print(f"---rate==>{rate[(int)(randseed % 100)]}")
addStockprice = todayStockprice * (rate[(int)(randseed % 100)] / 100)
print(f"addStockprice==>{addStockprice}")
todayStockprice = (int)(todayStockprice + addStockprice)
x = np.array([todayStockprice])
print(f"i={i}, x={x}")
p[i] = todayStockprice
print(p)
return p
p = np.zeros(250)
print(f"2 my answer: ==> {makestockval(10000, 250, p)}")
profit_rand = np.random.randn(250)*0.01
price = 10000
for i in profit_rand:
price += price*i
price
3.5.2 번 문제 아래 답이 맞는지 확신이 안서서 남깁니다.
import numpy as np
(1 + np.random.randn(250)/100) * 10000
연습문제
1. 동전을 10번 던져 앞면(숫자 1)과 뒷면(숫자 0)이 나오는 가상 실험을 파이썬으로 작성한다.
np.random.choice(2, 10, p=[0.5, 0.5])
2.주사위를 100번 던져서 나오는 숫자의 평균을 구하라.
random_num = np.random.randint(1, high=7, size=100)
np.mean(random_num)
or
np.sum(random_num) / 100
# 3. 가격이 10,000원인 주식이 있다.
# 이 주식의 일간 수익률(%)은 기댓값이 0%이고 표준편차가 1%인 표준 정규 분포를 따른다고 하자.
# 250일 동안의 주가를 무작위로 생성하라
price = 10000
days = np.random.randn(250) * 0.01
for i in days:
total = price * (1 + i)
print("{:,}원".format(round(total)))
# 연습 문제 3.5.1
# 동전을 10번 던져 앞면(숫자 1)과 뒷면(숫자 0)이 나오는
# 가상 실험을 파이썬으로 작성한다.
# 주사위를 100번 던져서 나오는 숫자의 평균을 구하라.
import random as rd
import numpy as np
print([rd.randint(0, 1) for _ in range(10)])
print(np.array([rd.randint(1, 6) for _ in range(100)]).mean())
# 연습 문제 3.5.2
# 가격이 10,000원인 주식이 있다.
# 이 주식의 일간 수익률(%)은
# 기댓값이 0%이고 표준편차가 1%인 표준 정규 분포를 따른다고 하자.
# 250일 동안의 주가를 무작위로 생성하라
print(np.prod(1 + np.random.randn(250) / 100) * 10000)