Lily_Lancer
Deity
Assuming they all played only on wonders, and there's enough wonder for them to play. (Ignore all other promotions)
Assuming Goes to 11 affects 2 other Civs(So its tourism is doubled):
With Hallyu:
Promotion:
Album Cover Art--Goes to 11: Average Tourism(before disband): 48444=30 tourists
Goes to 11-- Album Cover Art: Average Tourism: 28993=17 tourists
Definitely shall pick the 1st route.
Without Hallyu:
No promotions: Average Tourism=6665=4 tourists
Start with Album Cover Art: Average Tourism=26225=16 tourists
Start with Goes to 11: Average Tourism=13329=8 tourists
Average Tourism=1/4*26225+9/44*13329+24/44*6665=12918=8 tourists, assuming all promotions appear uniformly random.
So Rock band w. Hallyu: 30 tourists in average
w.o. Hallyu: 8 tourists in average
before they disband, assuming they only play on wonders & there're enough wonders.
Code(In Python):
import numpy as np
dicecount=[1,3,6,10,15,21,25,27,27,25,21,15,10,6,3,1]
print(np.sum(dicecount))
print(np.sum(dicecount[14:]))
alb=[0,0,1,2,3,4]
this=[-25,100,-25,150,0,200]
count=np.zeros((4,3,3,1001))
for i in range(2):
for j in range(2):
for k in range(1001):
num=0
if i==0:
num=50*k*6.17+2187
else:
num=50*k*10.8+8000
if j==1:
num*=2
count[3][j][k]=num
for k in range(1000,0,-1):
for i in range(2):
key=12-i
prob=[np.sum(dicecount[key:])/216.0]
for w in range(1,5):
prob.append(np.sum(dicecount[key-w*2:])/216.0-np.sum(prob))
prob.append(1-np.sum(prob))
# print(prob)
for j in range(2):
sumthis=0
for r in range(6):
w=5-r
al=k+alb[w]
th=this[w]+k*50
if j==1:
th*=2
if al>1000:
al=1000
upgrade=0
if w>=4:
upgrade=1
if w>=2:
sumthis+=prob[r]*(th+count[upgrade+2][j][al])
else:
sumthis+=prob[r]*th
if (k==2):
print(w,2,i,j,prob[r],th,count[upgrade+2][j][al])
if k==2:
print(sumthis)
count[2][j][k]=sumthis
for b in range(1,-1,-1):
for k in range(1000,0,-1):
for i in range(2):
key=14-b-i
prob=[np.sum(dicecount[key:])/216.0]
for w in range(1,5):
prob.append(np.sum(dicecount[key-w*2:])/216.0-np.sum(prob))
prob.append(1-np.sum(prob))
for j in range(2):
sumthis=0
for r in range(6):
w=5-r
al=k+alb[w]
th=this[w]+k*50
if al>1000:
al=1000
upgrade=0
upi=0
upj=0;
if w>=4:
upgrade=1
if i==0:
upi=3/(11-b)
if j==0:
upj=3/(11-b)*(8-b)/(10-b)
#upi=1
#upj=0
if (i==1 and j==0):
upj=3/(11-b)
#upj=1
if j==1:
th*=2
if w>=2:
sumthis+=prob[r]*(th+upj*count[upgrade+b][j+upj][al]+upi*count[upgrade+b][i+upi][j][al]+(1-upi-upj)*count[upgrade+b][j][al])
else:
sumthis+=prob[r]*th
if (k==2):
print(w, b,i,j,prob[r],th,count[upgrade+b][i+upi][j+upj][al])
if k==2:
print(sumthis)
count[j][k]=sumthis
print(count[:,0,0,2])
print(count[:,1,0,2])
print(count[:,0,1,2])
print(count[:,1,1,2])
Assuming Goes to 11 affects 2 other Civs(So its tourism is doubled):
With Hallyu:
Promotion:
Album Cover Art--Goes to 11: Average Tourism(before disband): 48444=30 tourists
Goes to 11-- Album Cover Art: Average Tourism: 28993=17 tourists
Definitely shall pick the 1st route.
Without Hallyu:
No promotions: Average Tourism=6665=4 tourists
Start with Album Cover Art: Average Tourism=26225=16 tourists
Start with Goes to 11: Average Tourism=13329=8 tourists
Average Tourism=1/4*26225+9/44*13329+24/44*6665=12918=8 tourists, assuming all promotions appear uniformly random.
So Rock band w. Hallyu: 30 tourists in average
w.o. Hallyu: 8 tourists in average
before they disband, assuming they only play on wonders & there're enough wonders.
Code(In Python):
Spoiler :
import numpy as np
dicecount=[1,3,6,10,15,21,25,27,27,25,21,15,10,6,3,1]
print(np.sum(dicecount))
print(np.sum(dicecount[14:]))
alb=[0,0,1,2,3,4]
this=[-25,100,-25,150,0,200]
count=np.zeros((4,3,3,1001))
for i in range(2):
for j in range(2):
for k in range(1001):
num=0
if i==0:
num=50*k*6.17+2187
else:
num=50*k*10.8+8000
if j==1:
num*=2
count[3][j][k]=num
for k in range(1000,0,-1):
for i in range(2):
key=12-i
prob=[np.sum(dicecount[key:])/216.0]
for w in range(1,5):
prob.append(np.sum(dicecount[key-w*2:])/216.0-np.sum(prob))
prob.append(1-np.sum(prob))
# print(prob)
for j in range(2):
sumthis=0
for r in range(6):
w=5-r
al=k+alb[w]
th=this[w]+k*50
if j==1:
th*=2
if al>1000:
al=1000
upgrade=0
if w>=4:
upgrade=1
if w>=2:
sumthis+=prob[r]*(th+count[upgrade+2][j][al])
else:
sumthis+=prob[r]*th
if (k==2):
print(w,2,i,j,prob[r],th,count[upgrade+2][j][al])
if k==2:
print(sumthis)
count[2][j][k]=sumthis
for b in range(1,-1,-1):
for k in range(1000,0,-1):
for i in range(2):
key=14-b-i
prob=[np.sum(dicecount[key:])/216.0]
for w in range(1,5):
prob.append(np.sum(dicecount[key-w*2:])/216.0-np.sum(prob))
prob.append(1-np.sum(prob))
for j in range(2):
sumthis=0
for r in range(6):
w=5-r
al=k+alb[w]
th=this[w]+k*50
if al>1000:
al=1000
upgrade=0
upi=0
upj=0;
if w>=4:
upgrade=1
if i==0:
upi=3/(11-b)
if j==0:
upj=3/(11-b)*(8-b)/(10-b)
#upi=1
#upj=0
if (i==1 and j==0):
upj=3/(11-b)
#upj=1
if j==1:
th*=2
if w>=2:
sumthis+=prob[r]*(th+upj*count[upgrade+b][j+upj][al]+upi*count[upgrade+b][i+upi][j][al]+(1-upi-upj)*count[upgrade+b][j][al])
else:
sumthis+=prob[r]*th
if (k==2):
print(w, b,i,j,prob[r],th,count[upgrade+b][i+upi][j+upj][al])
if k==2:
print(sumthis)
count[j][k]=sumthis
print(count[:,0,0,2])
print(count[:,1,0,2])
print(count[:,0,1,2])
print(count[:,1,1,2])
Last edited by a moderator: