Jump to content

jbrandmeyer

Members
  • Content Count

    118
  • Joined

  • Last visited


Reputation Activity

  1. Like
    jbrandmeyer got a reaction from pwnertrainee in On the Statistics of Lt. Blount   
    So long as you're playing a ~2000 pt game, sure!
    In all seriousness, their fragility and high demand for squadron commands does rather limit their utility.  However, on the fleet builds section I've seen a few posts where the author mentions how they aren't quite sure how the Z-95 will perform.  Here is an answer, at least to the offensive portion of the question: They are high-variance cannons.  I had a suspicion that they were still just high-variance plinkers, but Swarm and Blount really do help them out.  In effect, there are enough blank sides that the second reroll is almost as valuable as the first.
    The same cannot be said for the Nebulon-B, which also fires three red dice, and has an opportunity for up to two individual rerolls.
    I used the same technique for this and other complex situations, like "What does Sato really do for the Nebulon"?  (he adds about 0.5 dmg/attack)  What about with dual turbolaser turrets (still 0.5)?  What about on the Salvation (still 0.5)? Is it worthwhile to stock a concentrate fire token when I have dual turbolaser turrets (no - two blanks are quite rare)?  How about with slaved turrets (yes)?  Things like that.
  2. Like
    jbrandmeyer got a reaction from JolliGreenGiant in On the Statistics of Lt. Blount   
    The result: if accuracies are eligible for rerolls, 2.40 dmg/attack.  If they are retained, 2.28 dmg, with quite a lot of swing.  Overall, I think this is comparable to a Swarming TIE Interceptor, but with a bit higher variance.
    dmg result : inverse chance, rounded
    0: 1/10 (annoyingly frequent)
    1: 1/5
    2: 1/4
    3: 1/4
    4: 1/6
    5: 1/16
    6: 1/98

    So, it turns out that you can use 2D convolutions to figure out the distribution of damage for a Z95 Headhunter under the influence of Lt. Blount in a closed form (ie, without resorting to Monte Carlo).  The general idea is to write down a matrix with one type of result along one dimension (the probability of a specific amount of damage) and some other result along another dimension (in this case, the probability that I want to reroll that one die).
    I convolve one red squadron die's probability matrix with itself twice to get a baseline attack matrix.  This includes columns from 0 to 6 damage, and rows from zero to three eligible rerolls.
    Policy choice: I re-roll dice one at a time, once for swarm, and once for Horn.  So if my first reroll of one die is also a miss, then I can still reroll that die again.  I'm newish to the game, so please correct me if that isn't true.
    To implement the rerolls, I pick off the section of the matrix that is eligible, convolve that with one red die, and add it to the portion of the matrix that is not reroll eligible.  Twice, for the two sequential rolls.
    This function is executable in GNU Octave (it might also work in Matlab).
    Enjoy!
    function [dist, avg] = blount_rolls(keep_accuracy = true) % return the chances for each amount of damage, starting from zero, as well as % the average damage. % 2D probability map, with number of hits along columns, and number of % rerolled dice along the rows (0 or 1) sred = zeros(2, 3); if (keep_accuracy) sred = [1, 2, 1; 4, 0, 0]/8; else sred = [0, 2, 1; 5, 0, 0]/8; end % Two red anti-squadron dice sred2 = conv2(sred, sred); % Three red anti-squadron dice z95_base = conv2(sred2, sred) % z95_base with one swarm reroll z95_swarm = [z95_base(1,:); zeros(3, 7)] ... + conv2(sred, z95_base(2:end, 1:end-2)) % z95_swarm with one Lt. Blount reroll. The reroll is deliberately % sequential. z95_blount = [z95_swarm(1,:); zeros(3, 7)] ... + conv2(1red, z95_swarm(2:end, 1:end-2)) % Collapse the result into only the damage columns. dist = sum(z95_blount, 1); dmg = 0:1:6; % And also compute the expected value of the distribution (the average damage output). avg = dmg * dist'; end  
  3. Like
    jbrandmeyer got a reaction from DiabloAzul in On the Statistics of Lt. Blount   
    So long as you're playing a ~2000 pt game, sure!
    In all seriousness, their fragility and high demand for squadron commands does rather limit their utility.  However, on the fleet builds section I've seen a few posts where the author mentions how they aren't quite sure how the Z-95 will perform.  Here is an answer, at least to the offensive portion of the question: They are high-variance cannons.  I had a suspicion that they were still just high-variance plinkers, but Swarm and Blount really do help them out.  In effect, there are enough blank sides that the second reroll is almost as valuable as the first.
    The same cannot be said for the Nebulon-B, which also fires three red dice, and has an opportunity for up to two individual rerolls.
    I used the same technique for this and other complex situations, like "What does Sato really do for the Nebulon"?  (he adds about 0.5 dmg/attack)  What about with dual turbolaser turrets (still 0.5)?  What about on the Salvation (still 0.5)? Is it worthwhile to stock a concentrate fire token when I have dual turbolaser turrets (no - two blanks are quite rare)?  How about with slaved turrets (yes)?  Things like that.
  4. Like
    jbrandmeyer got a reaction from pwnertrainee in On the Statistics of Lt. Blount   
    The result: if accuracies are eligible for rerolls, 2.40 dmg/attack.  If they are retained, 2.28 dmg, with quite a lot of swing.  Overall, I think this is comparable to a Swarming TIE Interceptor, but with a bit higher variance.
    dmg result : inverse chance, rounded
    0: 1/10 (annoyingly frequent)
    1: 1/5
    2: 1/4
    3: 1/4
    4: 1/6
    5: 1/16
    6: 1/98

    So, it turns out that you can use 2D convolutions to figure out the distribution of damage for a Z95 Headhunter under the influence of Lt. Blount in a closed form (ie, without resorting to Monte Carlo).  The general idea is to write down a matrix with one type of result along one dimension (the probability of a specific amount of damage) and some other result along another dimension (in this case, the probability that I want to reroll that one die).
    I convolve one red squadron die's probability matrix with itself twice to get a baseline attack matrix.  This includes columns from 0 to 6 damage, and rows from zero to three eligible rerolls.
    Policy choice: I re-roll dice one at a time, once for swarm, and once for Horn.  So if my first reroll of one die is also a miss, then I can still reroll that die again.  I'm newish to the game, so please correct me if that isn't true.
    To implement the rerolls, I pick off the section of the matrix that is eligible, convolve that with one red die, and add it to the portion of the matrix that is not reroll eligible.  Twice, for the two sequential rolls.
    This function is executable in GNU Octave (it might also work in Matlab).
    Enjoy!
    function [dist, avg] = blount_rolls(keep_accuracy = true) % return the chances for each amount of damage, starting from zero, as well as % the average damage. % 2D probability map, with number of hits along columns, and number of % rerolled dice along the rows (0 or 1) sred = zeros(2, 3); if (keep_accuracy) sred = [1, 2, 1; 4, 0, 0]/8; else sred = [0, 2, 1; 5, 0, 0]/8; end % Two red anti-squadron dice sred2 = conv2(sred, sred); % Three red anti-squadron dice z95_base = conv2(sred2, sred) % z95_base with one swarm reroll z95_swarm = [z95_base(1,:); zeros(3, 7)] ... + conv2(sred, z95_base(2:end, 1:end-2)) % z95_swarm with one Lt. Blount reroll. The reroll is deliberately % sequential. z95_blount = [z95_swarm(1,:); zeros(3, 7)] ... + conv2(1red, z95_swarm(2:end, 1:end-2)) % Collapse the result into only the damage columns. dist = sum(z95_blount, 1); dmg = 0:1:6; % And also compute the expected value of the distribution (the average damage output). avg = dmg * dist'; end  
  5. Like
    jbrandmeyer got a reaction from DiabloAzul in On the Statistics of Lt. Blount   
    The result: if accuracies are eligible for rerolls, 2.40 dmg/attack.  If they are retained, 2.28 dmg, with quite a lot of swing.  Overall, I think this is comparable to a Swarming TIE Interceptor, but with a bit higher variance.
    dmg result : inverse chance, rounded
    0: 1/10 (annoyingly frequent)
    1: 1/5
    2: 1/4
    3: 1/4
    4: 1/6
    5: 1/16
    6: 1/98

    So, it turns out that you can use 2D convolutions to figure out the distribution of damage for a Z95 Headhunter under the influence of Lt. Blount in a closed form (ie, without resorting to Monte Carlo).  The general idea is to write down a matrix with one type of result along one dimension (the probability of a specific amount of damage) and some other result along another dimension (in this case, the probability that I want to reroll that one die).
    I convolve one red squadron die's probability matrix with itself twice to get a baseline attack matrix.  This includes columns from 0 to 6 damage, and rows from zero to three eligible rerolls.
    Policy choice: I re-roll dice one at a time, once for swarm, and once for Horn.  So if my first reroll of one die is also a miss, then I can still reroll that die again.  I'm newish to the game, so please correct me if that isn't true.
    To implement the rerolls, I pick off the section of the matrix that is eligible, convolve that with one red die, and add it to the portion of the matrix that is not reroll eligible.  Twice, for the two sequential rolls.
    This function is executable in GNU Octave (it might also work in Matlab).
    Enjoy!
    function [dist, avg] = blount_rolls(keep_accuracy = true) % return the chances for each amount of damage, starting from zero, as well as % the average damage. % 2D probability map, with number of hits along columns, and number of % rerolled dice along the rows (0 or 1) sred = zeros(2, 3); if (keep_accuracy) sred = [1, 2, 1; 4, 0, 0]/8; else sred = [0, 2, 1; 5, 0, 0]/8; end % Two red anti-squadron dice sred2 = conv2(sred, sred); % Three red anti-squadron dice z95_base = conv2(sred2, sred) % z95_base with one swarm reroll z95_swarm = [z95_base(1,:); zeros(3, 7)] ... + conv2(sred, z95_base(2:end, 1:end-2)) % z95_swarm with one Lt. Blount reroll. The reroll is deliberately % sequential. z95_blount = [z95_swarm(1,:); zeros(3, 7)] ... + conv2(1red, z95_swarm(2:end, 1:end-2)) % Collapse the result into only the damage columns. dist = sum(z95_blount, 1); dmg = 0:1:6; % And also compute the expected value of the distribution (the average damage output). avg = dmg * dist'; end  
  6. Like
    jbrandmeyer got a reaction from DarthBadger in On the Statistics of Lt. Blount   
    So long as you're playing a ~2000 pt game, sure!
    In all seriousness, their fragility and high demand for squadron commands does rather limit their utility.  However, on the fleet builds section I've seen a few posts where the author mentions how they aren't quite sure how the Z-95 will perform.  Here is an answer, at least to the offensive portion of the question: They are high-variance cannons.  I had a suspicion that they were still just high-variance plinkers, but Swarm and Blount really do help them out.  In effect, there are enough blank sides that the second reroll is almost as valuable as the first.
    The same cannot be said for the Nebulon-B, which also fires three red dice, and has an opportunity for up to two individual rerolls.
    I used the same technique for this and other complex situations, like "What does Sato really do for the Nebulon"?  (he adds about 0.5 dmg/attack)  What about with dual turbolaser turrets (still 0.5)?  What about on the Salvation (still 0.5)? Is it worthwhile to stock a concentrate fire token when I have dual turbolaser turrets (no - two blanks are quite rare)?  How about with slaved turrets (yes)?  Things like that.
  7. Like
    jbrandmeyer got a reaction from GhostofNobodyInParticular in On the Statistics of Lt. Blount   
    The result: if accuracies are eligible for rerolls, 2.40 dmg/attack.  If they are retained, 2.28 dmg, with quite a lot of swing.  Overall, I think this is comparable to a Swarming TIE Interceptor, but with a bit higher variance.
    dmg result : inverse chance, rounded
    0: 1/10 (annoyingly frequent)
    1: 1/5
    2: 1/4
    3: 1/4
    4: 1/6
    5: 1/16
    6: 1/98

    So, it turns out that you can use 2D convolutions to figure out the distribution of damage for a Z95 Headhunter under the influence of Lt. Blount in a closed form (ie, without resorting to Monte Carlo).  The general idea is to write down a matrix with one type of result along one dimension (the probability of a specific amount of damage) and some other result along another dimension (in this case, the probability that I want to reroll that one die).
    I convolve one red squadron die's probability matrix with itself twice to get a baseline attack matrix.  This includes columns from 0 to 6 damage, and rows from zero to three eligible rerolls.
    Policy choice: I re-roll dice one at a time, once for swarm, and once for Horn.  So if my first reroll of one die is also a miss, then I can still reroll that die again.  I'm newish to the game, so please correct me if that isn't true.
    To implement the rerolls, I pick off the section of the matrix that is eligible, convolve that with one red die, and add it to the portion of the matrix that is not reroll eligible.  Twice, for the two sequential rolls.
    This function is executable in GNU Octave (it might also work in Matlab).
    Enjoy!
    function [dist, avg] = blount_rolls(keep_accuracy = true) % return the chances for each amount of damage, starting from zero, as well as % the average damage. % 2D probability map, with number of hits along columns, and number of % rerolled dice along the rows (0 or 1) sred = zeros(2, 3); if (keep_accuracy) sred = [1, 2, 1; 4, 0, 0]/8; else sred = [0, 2, 1; 5, 0, 0]/8; end % Two red anti-squadron dice sred2 = conv2(sred, sred); % Three red anti-squadron dice z95_base = conv2(sred2, sred) % z95_base with one swarm reroll z95_swarm = [z95_base(1,:); zeros(3, 7)] ... + conv2(sred, z95_base(2:end, 1:end-2)) % z95_swarm with one Lt. Blount reroll. The reroll is deliberately % sequential. z95_blount = [z95_swarm(1,:); zeros(3, 7)] ... + conv2(1red, z95_swarm(2:end, 1:end-2)) % Collapse the result into only the damage columns. dist = sum(z95_blount, 1); dmg = 0:1:6; % And also compute the expected value of the distribution (the average damage output). avg = dmg * dist'; end  
  8. Like
    jbrandmeyer got a reaction from Tiberius the Killer in On the Statistics of Lt. Blount   
    The result: if accuracies are eligible for rerolls, 2.40 dmg/attack.  If they are retained, 2.28 dmg, with quite a lot of swing.  Overall, I think this is comparable to a Swarming TIE Interceptor, but with a bit higher variance.
    dmg result : inverse chance, rounded
    0: 1/10 (annoyingly frequent)
    1: 1/5
    2: 1/4
    3: 1/4
    4: 1/6
    5: 1/16
    6: 1/98

    So, it turns out that you can use 2D convolutions to figure out the distribution of damage for a Z95 Headhunter under the influence of Lt. Blount in a closed form (ie, without resorting to Monte Carlo).  The general idea is to write down a matrix with one type of result along one dimension (the probability of a specific amount of damage) and some other result along another dimension (in this case, the probability that I want to reroll that one die).
    I convolve one red squadron die's probability matrix with itself twice to get a baseline attack matrix.  This includes columns from 0 to 6 damage, and rows from zero to three eligible rerolls.
    Policy choice: I re-roll dice one at a time, once for swarm, and once for Horn.  So if my first reroll of one die is also a miss, then I can still reroll that die again.  I'm newish to the game, so please correct me if that isn't true.
    To implement the rerolls, I pick off the section of the matrix that is eligible, convolve that with one red die, and add it to the portion of the matrix that is not reroll eligible.  Twice, for the two sequential rolls.
    This function is executable in GNU Octave (it might also work in Matlab).
    Enjoy!
    function [dist, avg] = blount_rolls(keep_accuracy = true) % return the chances for each amount of damage, starting from zero, as well as % the average damage. % 2D probability map, with number of hits along columns, and number of % rerolled dice along the rows (0 or 1) sred = zeros(2, 3); if (keep_accuracy) sred = [1, 2, 1; 4, 0, 0]/8; else sred = [0, 2, 1; 5, 0, 0]/8; end % Two red anti-squadron dice sred2 = conv2(sred, sred); % Three red anti-squadron dice z95_base = conv2(sred2, sred) % z95_base with one swarm reroll z95_swarm = [z95_base(1,:); zeros(3, 7)] ... + conv2(sred, z95_base(2:end, 1:end-2)) % z95_swarm with one Lt. Blount reroll. The reroll is deliberately % sequential. z95_blount = [z95_swarm(1,:); zeros(3, 7)] ... + conv2(1red, z95_swarm(2:end, 1:end-2)) % Collapse the result into only the damage columns. dist = sum(z95_blount, 1); dmg = 0:1:6; % And also compute the expected value of the distribution (the average damage output). avg = dmg * dist'; end  
  9. Like
    jbrandmeyer got a reaction from Onidsen in On the Statistics of Lt. Blount   
    The result: if accuracies are eligible for rerolls, 2.40 dmg/attack.  If they are retained, 2.28 dmg, with quite a lot of swing.  Overall, I think this is comparable to a Swarming TIE Interceptor, but with a bit higher variance.
    dmg result : inverse chance, rounded
    0: 1/10 (annoyingly frequent)
    1: 1/5
    2: 1/4
    3: 1/4
    4: 1/6
    5: 1/16
    6: 1/98

    So, it turns out that you can use 2D convolutions to figure out the distribution of damage for a Z95 Headhunter under the influence of Lt. Blount in a closed form (ie, without resorting to Monte Carlo).  The general idea is to write down a matrix with one type of result along one dimension (the probability of a specific amount of damage) and some other result along another dimension (in this case, the probability that I want to reroll that one die).
    I convolve one red squadron die's probability matrix with itself twice to get a baseline attack matrix.  This includes columns from 0 to 6 damage, and rows from zero to three eligible rerolls.
    Policy choice: I re-roll dice one at a time, once for swarm, and once for Horn.  So if my first reroll of one die is also a miss, then I can still reroll that die again.  I'm newish to the game, so please correct me if that isn't true.
    To implement the rerolls, I pick off the section of the matrix that is eligible, convolve that with one red die, and add it to the portion of the matrix that is not reroll eligible.  Twice, for the two sequential rolls.
    This function is executable in GNU Octave (it might also work in Matlab).
    Enjoy!
    function [dist, avg] = blount_rolls(keep_accuracy = true) % return the chances for each amount of damage, starting from zero, as well as % the average damage. % 2D probability map, with number of hits along columns, and number of % rerolled dice along the rows (0 or 1) sred = zeros(2, 3); if (keep_accuracy) sred = [1, 2, 1; 4, 0, 0]/8; else sred = [0, 2, 1; 5, 0, 0]/8; end % Two red anti-squadron dice sred2 = conv2(sred, sred); % Three red anti-squadron dice z95_base = conv2(sred2, sred) % z95_base with one swarm reroll z95_swarm = [z95_base(1,:); zeros(3, 7)] ... + conv2(sred, z95_base(2:end, 1:end-2)) % z95_swarm with one Lt. Blount reroll. The reroll is deliberately % sequential. z95_blount = [z95_swarm(1,:); zeros(3, 7)] ... + conv2(1red, z95_swarm(2:end, 1:end-2)) % Collapse the result into only the damage columns. dist = sum(z95_blount, 1); dmg = 0:1:6; % And also compute the expected value of the distribution (the average damage output). avg = dmg * dist'; end  
×
×
  • Create New...