품질1의 재료를 시작으로 품질5의 생산품을 만드는데에는 총 9종의 제작법이 필요하다
1. 품질1 재료 -> 품질1↑생산품
2. 품질2 재료 -> 품질2↑생산품
3. 품질3 재료 -> 품질3↑생산품
4. 품질4 재료 -> 품질4↑생산품
5. 품질5 재료 -> 품질5 생산품
6. 품질1 생산품 -> 품질1↑ 재료(25%)
7. 품질2 생산품 -> 품질2↑ 재료(25%)
8. 품질3 생산품 -> 품질3↑ 재료(25%)
9. 품질4 생산품 -> 품질4↑ 재료(25%)
여기서 5번 제작법은 품질5가 이미 확정이기 때문에 품질모듈을 쓸 이유가 전혀 없고 생산모듈을 전부 껴주면 된다.
6~9번 제작법은 재활용 기계를 돌리는 것이기 때문에 생산모듈을 낄 수 없을 것이다. 전부 품질모듈을 껴주면 된다.
그외의 1~4번 제작법은 품질 모듈을 낄 수도 있고 생산 모듈을 낄 수도 있는데 가장 최적의 수가 뭔지 알아보자
하나의 제작법마다 5개의 선택지가 있고(품질4, 품질3생산1, 품질2생산2, 품질1생산3, 생산4) 고려대상의 레시피는 4개다
경우의 수가 5^4=625개 밖에 안되니 코드 짜서 최적의 수를 계산해보자
처음에 품질1 재료가 1,000,000개 있다고 치고 계속 모든 제작법을 뺑뺑이 돌려서 품질5 생산품만 남을 때 까지 충분히 루프를 돌린 다음(1만회) 몇 개의 결과물이 나왔는지 확인하는 방식으로 진행할거고 가장 좋은 결과가 나온 경우와 특이한 경우 몇개를 써볼것임
코드는 아래의 매트랩 코드를 사용했다
function x=ingre2prod(from_tier,to_tier,q)
%p_factor=0.25;
%q_factor=0.62;
p_factor=0.10;
q_factor=0.25;
p=4-q;
x=(1+p*p_factor);
qq=q*q_factor;
if from_tier > to_tier
x=x*0;
elseif from_tier == to_tier
if to_tier!=5
x=x*(1-qq/10);
end
else
diff=to_tier-from_tier;
if to_tier==5
x=x*( qq*(1/(10^diff) ) );
else
x=x*( qq*(1/(10^diff)-1/(10^(diff+1))) );
end
end
end
min=Inf;
max=0;
Qmin=0;
Qmx=0;
res=zeros(256,5);
for i=0:((5^4)-1)
%Q=[0;0;0;0;0;0;0;0;0;0];
%Q=[0;4;4;4;4;0;4;4;4;4];4
itmp=i;
Qtmp=zeros(4,1);
for j=1:4
Qtmp(j)=mod(itmp, 5);
itmp=floor(itmp / 5);
end
Q=[0;Qtmp(1:4);0;4;4;4;4];
A=zeros(10,10);
A(1,1)=1;
A(1:5,6:10)=[ingre2prod(5,5,Q(1)) ingre2prod(4,5,Q(2)) ingre2prod(3,5,Q(3)) ingre2prod(2,5,Q(4)) ingre2prod(1,5,Q(5));
0 ingre2prod(4,4,Q(2)) ingre2prod(3,4,Q(3)) ingre2prod(2,4,Q(4)) ingre2prod(1,4,Q(5));
0 0 ingre2prod(3,3,Q(3)) ingre2prod(2,3,Q(4)) ingre2prod(1,3,Q(5));
0 0 0 ingre2prod(2,2,Q(4)) ingre2prod(1,2,Q(5));
0 0 0 0 ingre2prod(1,1,Q(5))];
A(6:10,1:5)=[0 ingre2prod(4,5,Q(7)) ingre2prod(3,5,Q(8)) ingre2prod(2,5,Q(9)) ingre2prod(1,5,Q(10));
0 ingre2prod(4,4,Q(7)) ingre2prod(3,4,Q(8)) ingre2prod(2,4,Q(9)) ingre2prod(1,4,Q(10));
0 0 ingre2prod(3,3,Q(8)) ingre2prod(2,3,Q(9)) ingre2prod(1,3,Q(10));
0 0 0 ingre2prod(2,2,Q(9)) ingre2prod(1,2,Q(10));
0 0 0 0 ingre2prod(1,1,Q(10))] .*0.25;
N = 10000;
X=[0;0;0;0;0;0;0;0;0;1000000];
Y=(A^N)*X;
ratio=X(10)/Y(1);
if ratio>max
max=ratio;
Qmax=Q;
elseif ratio<min
min=ratio;
Qmin=Q;
end
res(i+1,:)=[ratio, round(Qtmp')];
end
테스트 결과 상당히 재밌는 결과를 얻었다
효율이 가장 안 좋은 경우
1. 품질1 재료 -> 품질1↑생산품 -> (품질4 또는 생산4)
2. 품질2 재료 -> 품질2↑생산품 -> (품질4 또는 생산4)
3. 품질3 재료 -> 품질3↑생산품 -> (품질4 또는 생산4)
4. 품질4 재료 -> 품질4↑생산품 -> (품질4 또는 생산4)
5. 품질5 재료 -> 품질5 생산품 -> (생산4)
6. 품질1 생산품 -> 품질1↑ 재료(25%) -> (품질4)
7. 품질2 생산품 -> 품질2↑ 재료(25%) -> (품질4)
8. 품질3 생산품 -> 품질3↑ 재료(25%) -> (품질4)
9. 품질4 생산품 -> 품질4↑ 재료(25%) -> (품질4)
Aa가 품질모듈 올인일 경우 사용한 행렬이고
Ab가 생산모듈 올인일 경우 사용한 행렬인데 분명히 다른 값이다
그런데 반복시행을 50회정도 하고 나니 둘 다 값이 같아져버린다
선형대수학 지식 딸려서 왜 이러는건진 모르겠는데 암튼 존나 신기하다
효율이 가장 좋은 경우
1. 품질1 재료 -> 품질1↑생산품 -> (품질2 + 생산2)
2. 품질2 재료 -> 품질2↑생산품 -> (품질2 + 생산2)
3. 품질3 재료 -> 품질3↑생산품 -> (품질2 + 생산2)
4. 품질4 재료 -> 품질4↑생산품 -> (품질2 + 생산2)
5. 품질5 재료 -> 품질5 생산품 -> (생산4)
6. 품질1 생산품 -> 품질1↑ 재료(25%) -> (품질4)
7. 품질2 생산품 -> 품질2↑ 재료(25%) -> (품질4)
8. 품질3 생산품 -> 품질3↑ 재료(25%) -> (품질4)
9. 품질4 생산품 -> 품질4↑ 재료(25%) -> (품질4)
한가운데를 보면 모듈을 품질2개+생산2개 섞었을 때 가장 교환비가 작은 것을 확인 할 수 있다
그리고 가장자리 쪽에 모듈을 올인해서 사용한 경우 가장 교환비가 높은 것 또한 확인할 수 있다
그래프로 한눈에 보기
(대충 가운데로 갈수록 움푹 패여서 좋다는 뜻)
품질5 모듈이 아니라 품질1 모듈을 사용할 경우
사용하는 모듈의 대상을 품질5품질모듈3,품질5생산모듈3이 아니라 품질1품질모듈3,품질1생산모듈3을 사용하는 경우도 궁금할 것이다
위에 있는 코드에서 q_factor의 값을 0.62->0.25로 조정, p_factor의 값을 0.25->0.10으로 바꿔서 돌리면 되는데 이 때의 결과는 아래와 같다
이번에는 그냥 닥치고 품질모듈에 올인하는 것이 가장 효율이 좋다
모든 공정에 품질모듈3 4개를 박을 경우 교환비 1072.6으로 품질5 생산품을 얻을 수 있을 것이다
자원이 미친듯이 갈려나갈 예정이니 마음의 준비를 하도록 하자
글 쓰던 도중 코드 부분에 floor(itmp/☆5) 들어갔다고 글이 통째로 날아가버려서 아주 슬펐다
이런거 다 설계한거겠지 ㄷㄷ
이래놓고 나중에 정발할 때 수치 바뀌어서 나오면 다 의미 없는 계산 됨 ㅋㅋ
오 초보자도 이해하기 쉽게 잘 썼네요
56배는 공정이 한단계가 아니라 여러단계를 거칠때 이론적인 비율같음 이 게시물 내용 나도 해볼까 했었는데 안해본게 코드 짜기 귀찮기도 하고 섞어쓰는게 교환비가 더 나은건 알고 있지만 섞어쓰는건 메리트가 없는게 속도모듈은 퀄리티랑 섞어서 못쓰는데 생산성은 속도를 많이 떨어트림 - dc App
맞음 글에서 언급은 안했지만 속도 모듈 같이 못쓰는게 상당히 크리티컬 할거임
그래서 실질적으로는 1티어 입력에는 그냥 생산+속도로 돌리는게 맞는것 같은데 그래도 2~3티어 이상급은 생산+품질 섞어서 쓰는게 좋을 것 같음. 어짜피 고티어 템들은 물량 자체가 많이 안나와서 공장속도가 느려진다 하더라도 별 지장 없을듯?
극한의 효율을 추구한다면 그것도 가능은할듯 ㅋㅋ퀄리티 효율 높이려면 공장이 한없이 커지네 - dc App
진짜 독이 든 성배다 이거 ㅋㅋ
재활용기에도 품질모듈 박히던데 그거 넣은거지? 코드읽어보려다가 머리아파서 걍물어보는거
ㅇㅇ 재활용기는 품질 고정임
공식디코랑 레딧에서도 "56" 이숫자땜에 말 많던데.
https://www.reddit.com/r/factorio/comments/16fw13l/comment/k0454c6/?utm_source=share&utm_medium=web2x&context=3
FFF에
나온 확률표가 잘못됐다고 개발자(boskid)가 직접 말한것도 있고
https://discord.com/channels/139677590393716737/603392474458882065/1151224070772367440
너랑
똑같이 80나온사람도 있음.
https://www.reddit.com/r/factorio/comments/16g1x7r/comment/k069or6/?utm_source=share&utm_medium=web2x&context=3
The
best anyone has got so far is Q5 items are 80 times more expensive than the same Q1 items...
전설급 품질만 박는다는 가정으로 112 언저리의 숫자가 나온 사람도 많은데, 마침 56*2가 112임.
너랑 똑같이 116얻은 사람들도 있어서 56이 오타 아니냐는 주장도 있음.
확장팩에 모듈 6개까지 박히는 기계가 있다는 가정으로 60.6 얻은 사람도 있고. 바닐라 기준 최대 생산부스트가 100%인데 재활용기 효율이 50%가 아니라 25%인게 이상하다 생각하는 쪽도 있더라.
확률표 잘못나왔다는게 뭔소린가 했는데 9% 0.9% 0.09% 0.01%로 나와야하는게 10% 1% 0.1% 0.01%로 적힌거 얘기구나 ㅋㅋ 뭔가 이상하다 싶긴했음 그거
상식적으로 오타일리는 없고 56이 맞지 않겠나? 개발자는 이런 복잡한 계산 해볼필요도 없이 게임이 있으니 걍 들어가서 공장 지어보면 되는거고.
심심해서 재활용기 효율 50%로 때려보니까 최대 교환비 0.7이 나오네 ㅅㅂㅋㅋ
https://discord.com/channels/139677590393716737/603392474458882065/1150731238160740413
yes,
all quality and all prod are identical(on T3Q5), but middle ground (2-2) gives better results
Erythion — has someone started a rigorous recursive analysis of breeder loops?
Hexicube — that started 2 days ago
Pillow — and 4 people got same results
이거 이 글이랑 그냥 정확히 똑같은 내용 아님? 숫자부터 결론까지 일치함
Hexicube — 09/11/2023 6:56 PM we just got confirmation the FFF x56 is either wrong or is using something extra boskid — 09/11/2023 6:58 PM 2 001 084 iron plate into 12 364 legendary gear when using 2 legendary prod module 3 + 2 legendary quality module 3. 1 000 542 / 12 364 = 80.92 그냥 개발자피셜로 80이 맞음.
같은 계산결과 나왔다니 기분 좋은걸
근데 디코 저채널 채팅량이 적은편이 아닌것 같은데 필요한 정보 찾기 진짜 쉽지않겠네
나도 79.878나오는데 다들 간과하는게 하나있음 생산성 모듈을 적용받는 공장이니까 생산성 모듈 도배의 기회비용 고려하면 160배 비싼거임 - dc App
기회비용을 왜 고려함 - dc App
기회비용이 있냐? (X) 오히려 풀로 생산모듈 박는게 더 효율나쁨 기회비용이 기본 비용을 바꾸냐? (X) 기회비용이 뭔뜻인지 모르냐? 내가 아이스크림을 CU에서 2천원에 사먹었는데 GS에서 1+1 하면 2천원이 아니라 4천원 되는거임? 갑자기 뭔 본문도 안읽고 경제 용어도 모르는 놈이 꼬이네
왜 지가 못알아듣고 나한테 뭐라하는지 모르겠는데 위 게시글에서는 1대1변환되는 공정에 대해 전설로 바뀌는 비율을 구하고 있음 본문에서 80이니까 1000개넣으면 대략 12.5개 나오겠지? 근데 생산성 모듈 박았으면 일반 생산품이 2000개 나왔을거 아니냐 그러면 전설 생산품이 2000/12.5배 비싼게 맞지 1000/12.5가 아니라 좀 알고 말해라 - dc App
근데 글 내용은 어디까지나 1티어재료:5티어생산품의 비율을 알고 싶었던거지 1티어생산품:5티어생산품의 비율을 구하고 싶었던건 아니긴함
개발자가 말한 56배의 가치는 같은 생산품에 대해 다른 등급을 얻었을때를 가정하는게 합리적이지 않을까? 본문도 그 내용에 대해 다뤘으니 난 그렇게 생각했음 - dc App
대댓 계속 여기다는게 맞는지는 모르겠네 ㅋㅋ 다시 FFF읽고와봤는데 1티어생산품:5티어생산품을 비교하는게 맞는 것 같긴하네. 근데 그 글 쓸 때는 1티어 생산품에 생산모듈을 썼다는 가정은 굳이 안하고 그냥 노모듈 생산을 기준으로 썼을 것 같음
추가로 계산해봤는데 모듈에 들어가는 철판기준으로 5단계거치면서 생산성 모듈은 칩만들때 쓰면 64대1정도까지 비용 줄어드네 생산성 2,2,2나 3,3,3이나 비슷한게 신기함 - dc App
품질5 재료넣고 생산모듈 풀로 박을 생각하니 발기했어
훌륭한 분이시네... 스크랩해가요