WARFORGE

Здравствуйте, гость ( Авторизация | Регистрация )

Форумы работают на сервере

> Правила подфорума

Этот форум предназначен для публикования и обсуждения различных новостей об игре Warhammer 40k, однако сразу хочется отметить, что некоторые новости стоит обсуждать в других разделах или форумах, а именно:

993 страниц V  « < 796 797 798 799 800 > »   
Закрытая темаЗапустить новую тему
Обсуждение новостей Games Workshop
HorrOwl
сообщение 20.02.2019, 14:23
Сообщение #15941


Гудзонский Филин
Maniac!
************

Группа: Куратор клуба
Сообщений: 25 335
Регистрация: 21.05.2004
Из: Ye Olde Skool
Пользователь №: 119

Первое местоПервое местоПервое место



Репутация:   2756  


В прошлый раз редемпшионистов в двурфе тупо запихали в кодекс вичхантеров, не думаю что сейчас будет как-то иначе.

Сообщение отредактировал HorrOwl - 20.02.2019, 14:23


--------------------
Перейтик к верху страницы
 
+Цитировать сообщение
Листригон
сообщение 20.02.2019, 17:03
Сообщение #15942


Maniac!
************

Группа: Пользователь
Сообщений: 10 461
Регистрация: 21.08.2012
Пользователь №: 34 029



Репутация:   1114  


Цитата(Nielle @ 20.02.2019, 11:17) *
А в чем коктейльность? Это всегда было. Так-то, продолжая тренд, комиссаров и псайкеров надо вычленить в отдельные кодексы комиссариата и псайканы,ни к чему такие смеси. А минек и накинуть можно

Да нет.

Святоши могут выставить полноценный кодекс, что не по зубам коми


--------------------
«Как уст румяных без улыбки, без грамматической ошибки я русской речи не люблю» (с) Пушкин

"котик любит кошечку, птичка воробья, небо любит солнышко, я люблю пожрать"
Перейтик к верху страницы
 
+Цитировать сообщение
Nielle
сообщение 20.02.2019, 17:16
Сообщение #15943


Ordo Hereticus Inquisitor Lord
************

Warhammer 40,000
Раса: Witch Hunters
Армия: Order of the Sacred Rose
Группа: Пользователь
Сообщений: 5 929
Регистрация: 08.06.2011
Пользователь №: 29 237



Репутация:   1122  


Я скорее к тому, что священники были с сестрами с самого их появления, при этом с точки зрения лора, сестры являются частью поповства.

Кстати, а что за вопрос со шлемом на арте, я не совсем понял?
Перейтик к верху страницы
 
+Цитировать сообщение
Листригон
сообщение 20.02.2019, 21:16
Сообщение #15944


Maniac!
************

Группа: Пользователь
Сообщений: 10 461
Регистрация: 21.08.2012
Пользователь №: 34 029



Репутация:   1114  


Цитата(Nielle @ 20.02.2019, 17:16) *
Я скорее к тому, что священники были с сестрами с самого их появления, при этом с точки зрения лора, сестры являются частью поповства.

Это так.
Я о том, что Сестры могут быть отдельной и полноценной фракцией, как и Церковь.
Развитие в ширину это хорошо.
Ни кто же не против, что ДГ стали армией.


Цитата(Nielle @ 20.02.2019, 17:16) *
Кстати, а что за вопрос со шлемом на арте, я не совсем понял?

В центре наверху.



Ещё внимание на хоругвь крайнюю с права, и чашу с головой и плечами в нижнем левом углу.

Редизайн? Отстой.

Сообщение отредактировал Листригон - 20.02.2019, 21:18


--------------------
«Как уст румяных без улыбки, без грамматической ошибки я русской речи не люблю» (с) Пушкин

"котик любит кошечку, птичка воробья, небо любит солнышко, я люблю пожрать"
Перейтик к верху страницы
 
+Цитировать сообщение
Нитроксилин
сообщение 20.02.2019, 21:29
Сообщение #15945


Master Flooder
**********

Группа: Пользователь
Сообщений: 683
Регистрация: 15.07.2010
Пользователь №: 24 441



Репутация:   213  


Цитата(Листригон @ 20.02.2019, 21:16) *
Ещё внимание на хоругвь крайнюю с права, и чашу с головой и плечами в нижнем левом углу.

На хоругви стилизованный Император, а чаша не с плечами, а с трубами ранца силовой брони.
Перейтик к верху страницы
 
+Цитировать сообщение
Nielle
сообщение 20.02.2019, 21:31
Сообщение #15946


Ordo Hereticus Inquisitor Lord
************

Warhammer 40,000
Раса: Witch Hunters
Армия: Order of the Sacred Rose
Группа: Пользователь
Сообщений: 5 929
Регистрация: 08.06.2011
Пользователь №: 29 237



Репутация:   1122  


Шлем не изменится, как и дизайн брони, уже показали все. Только пропорции изменятся и сестры станут заметно выше
Перейтик к верху страницы
 
+Цитировать сообщение
Листригон
сообщение 20.02.2019, 22:00
Сообщение #15947


Maniac!
************

Группа: Пользователь
Сообщений: 10 461
Регистрация: 21.08.2012
Пользователь №: 34 029



Репутация:   1114  


Цитата(Нитроксилин @ 20.02.2019, 21:29) *
На хоругви стилизованный Император, а чаша не с плечами, а с трубами ранца силовой брони.

Спасибо.
Пронесло.

Цитата(Nielle @ 20.02.2019, 21:31) *
Шлем не изменится, как и дизайн брони, уже показали все. Только пропорции изменятся и сестры станут заметно выше

А где всё показали?
Всё, нашел.

Сообщение отредактировал Листригон - 20.02.2019, 22:03


--------------------
«Как уст румяных без улыбки, без грамматической ошибки я русской речи не люблю» (с) Пушкин

"котик любит кошечку, птичка воробья, небо любит солнышко, я люблю пожрать"
Перейтик к верху страницы
 
+Цитировать сообщение
Разжигатель Войн...
сообщение 21.02.2019, 20:11
Сообщение #15948


Greater Daemon
************

Warhammer 40,000
Раса: Chaos Space Marines
Армия: Black Legion
Группа: Пользователь
Сообщений: 3 337
Регистрация: 18.11.2012
Пользователь №: 35 021



Репутация:   670  


Потекло
Перейтик к верху страницы
 
+Цитировать сообщение
Omega-soul
сообщение 21.02.2019, 21:14
Сообщение #15949


Guardsman
************

Warhammer 40,000
Раса: Imperial Guard
Армия: Vostroyans
Группа: Пользователь
Сообщений: 1 163
Регистрация: 03.06.2008
Из: РФ
Пользователь №: 14 399



Репутация:   384  


Янки не считаются - основной склад в Ноттингеме, а на британском сайте всё на месте.
Перейтик к верху страницы
 
+Цитировать сообщение
Iron Duke
сообщение 22.02.2019, 13:33
Сообщение #15950


Ordo Hereticus Inquisitor Lord
************

Warhammer 40,000
Раса: Witch Hunters
Армия: Ordo Hereticus
Группа: Куратор
Сообщений: 21 284
Регистрация: 08.10.2007
Из: Пустоверть Крутоты
Пользователь №: 10 845

Победитель литературного фестиваляЛучшему игроку форумной ролевой игры "Планета лжи"



Репутация:   2644  


Немного про смерть карланов
Орден чисто состоящий из примарисов


--------------------
Even in the heart of Hell, demons can still feel fear...
Я думал тебя убили... Так и было, но я выжил.
Перейтик к верху страницы
 
+Цитировать сообщение
Siegemaster Dura...
сообщение 22.02.2019, 15:43
Сообщение #15951


Lesser Daemon
************

Warhammer Fantasy
Раса: Daemons of Chaos
Армия: Nurgle Legion
Группа: Пользователь
Сообщений: 2 483
Регистрация: 01.02.2013
Из: Nurgle's garden
Пользователь №: 35 425



Репутация:   610  


Цитата(Shaseer @ 18.02.2019, 21:36) *
Значит сёстры в разработке уже больше года.

"Шли последние приготовления"




--------------------
- Почему у ассолтников БА желтые шлемы?
- Потому что уже третью редакцю ГВ ссыт им в лицо...
Перейтик к верху страницы
 
+Цитировать сообщение
grisumbras
сообщение 22.02.2019, 15:55
Сообщение #15952


Maniac!
************

Группа: Пользователь
Сообщений: 1 314
Регистрация: 15.11.2013
Пользователь №: 38 682



Репутация:   137  


Почитал про Виндикара и вероятность. Стало интересно посчитать.
без FNP
Код
save: 4+; FNP: 7+
mean: 2.1733539094650207
median: 2
standard deviation: 1.8133846971708114
25% of outcomes: [1, 2]
50% of outcomes: [0, 3]
80% of outcomes: [0, 4]
90% of outcomes: [0, 5]
0 is 30.555556% of outcomes
1 is 7.716049% of outcomes
2 is 15.432099% of outcomes
3 is 20.576132% of outcomes
4 is 15.003429% of outcomes
5 is 7.716049% of outcomes
6 is 2.572016% of outcomes
7 is 0.428669% of outcomes
mode: 0

save: 3+; FNP: 7+
mean: 1.8111282578875172
median: 2
standard deviation: 1.8429163021096384
25% of outcomes: [1, 2]
50% of outcomes: [0, 3]
80% of outcomes: [0, 4]
90% of outcomes: [0, 4]
0 is 42.129630% of outcomes
1 is 6.430041% of outcomes
2 is 12.860082% of outcomes
3 is 17.146776% of outcomes
4 is 12.502858% of outcomes
5 is 6.430041% of outcomes
6 is 2.143347% of outcomes
7 is 0.357225% of outcomes
mode: 0

save: 2+; FNP: 7+
mean: 1.4489026063100137
median: 0
standard deviation: 1.8005282802300437
25% of outcomes: [0, 2]
50% of outcomes: [0, 2]
80% of outcomes: [0, 3]
90% of outcomes: [0, 4]
0 is 53.703704% of outcomes
1 is 5.144033% of outcomes
2 is 10.288066% of outcomes
3 is 13.717421% of outcomes
4 is 10.002286% of outcomes
5 is 5.144033% of outcomes
6 is 1.714678% of outcomes
7 is 0.285780% of outcomes
mode: 0

FNP 6+
Код
save: 4+; FNP: 6+
mean: 1.6057241655235481
median: 1
standard deviation: 1.6578488168585512
25% of outcomes: [1, 2]
50% of outcomes: [0, 2]
80% of outcomes: [0, 3]
90% of outcomes: [0, 4]
0 is 42.129630% of outcomes
1 is 9.112816% of outcomes
2 is 16.454332% of outcomes
3 is 17.064752% of outcomes
4 is 10.079863% of outcomes
5 is 4.034051% of outcomes
6 is 1.004924% of outcomes
7 is 0.119634% of outcomes
mode: 0

save: 3+; FNP: 6+
mean: 1.3381034712696236
median: 0
standard deviation: 1.6274181278733642
25% of outcomes: [0, 1]
50% of outcomes: [0, 2]
80% of outcomes: [0, 3]
90% of outcomes: [0, 4]
0 is 51.774691% of outcomes
1 is 7.594013% of outcomes
2 is 13.711944% of outcomes
3 is 14.220626% of outcomes
4 is 8.399885% of outcomes
5 is 3.361709% of outcomes
6 is 0.837436% of outcomes
7 is 0.099695% of outcomes
mode: 0

save: 2+; FNP: 6+
mean: 1.0704827770156988
median: 0
standard deviation: 1.5508949527019833
25% of outcomes: [0, 1]
50% of outcomes: [0, 2]
80% of outcomes: [0, 3]
90% of outcomes: [0, 3]
0 is 61.419753% of outcomes
1 is 6.075211% of outcomes
2 is 10.969555% of outcomes
3 is 11.376501% of outcomes
4 is 6.719908% of outcomes
5 is 2.689367% of outcomes
6 is 0.669949% of outcomes
7 is 0.079756% of outcomes
mode: 0

FNP 5+
Код
save: 4+; FNP: 5+
mean: 1.1202560585276635
median: 0
standard deviation: 1.425972313382702
25% of outcomes: [0, 1]
50% of outcomes: [0, 2]
80% of outcomes: [0, 2]
90% of outcomes: [0, 3]
0 is 53.703704% of outcomes
1 is 10.538956% of outcomes
2 is 15.761392% of outcomes
3 is 12.372022% of outcomes
4 is 5.623076% of outcomes
5 is 1.674692% of outcomes
6 is 0.301068% of outcomes
7 is 0.025089% of outcomes
mode: 0

save: 3+; FNP: 5+
mean: 0.9335467154397196
median: 0
standard deviation: 1.3670403893423693
25% of outcomes: [0, 1]
50% of outcomes: [0, 1]
80% of outcomes: [0, 2]
90% of outcomes: [0, 3]
0 is 61.419753% of outcomes
1 is 8.782463% of outcomes
2 is 13.134493% of outcomes
3 is 10.310019% of outcomes
4 is 4.685897% of outcomes
5 is 1.395577% of outcomes
6 is 0.250890% of outcomes
7 is 0.020908% of outcomes
mode: 0

save: 2+; FNP: 5+
mean: 0.7468373723517756
median: 0
standard deviation: 1.2784682460116072
25% of outcomes: [0, 1]
50% of outcomes: [0, 1]
80% of outcomes: [0, 2]
90% of outcomes: [0, 2]
0 is 69.135802% of outcomes
1 is 7.025971% of outcomes
2 is 10.507595% of outcomes
3 is 8.248015% of outcomes
4 is 3.748718% of outcomes
5 is 1.116461% of outcomes
6 is 0.200712% of outcomes
7 is 0.016726% of outcomes
mode: 0

Код
Код
           import itertools
           import math
           import sys
           from functools import reduce
          
          
           def product(seq):
               return reduce((lambda a, b: a * b[0]), seq, 1)
          
          
           def all_or_nothing(threshold, full, current, outcome, sequence, outcomes, continuation):
               head = sequence[0][0]
               tail = sequence[1:]
               fails = threshold - 1
               outcomes[0] += current * product(tail) * fails
               full *= head
               current *= head - fails
               return continuation(full, current, outcome, tail, outcomes)
          
          
           def roll_for_damage(full, current, outcome, sequence, outcomes, continuation):
               head = sequence[0][0]
               tail = sequence[1:]
               full *= head
               for roll in range(1, head + 1):
                   outcomes = continuation(full, current, roll, tail, outcomes)
               return outcomes
          
          
           def fnp(threshold, full, current, outcome, sequence, outcomes, continuation):
               head = sequence[0][0]
               tail = sequence[1:]
               successes = threshold - 1
               fails = head - successes
               failed_outcome = outcome - 1
               full *= head
               if failed_outcome <= 0:
                   outcomes[0] += current * product(tail) * fails
                   current *= head - fails
                   outcomes = continuation(full, current, outcome, tail, outcomes)
               else:
                   outcomes = continuation(full, current * fails, failed_outcome, tail, outcomes)
                   outcomes = continuation(full, current * successes, outcome, tail, outcomes)
               return outcomes
          
          
           def extra_damage(threshold, full, current, outcome, sequence, outcomes, continuation):
               head = sequence[0][0]
               tail = sequence[1:]
               fails = threshold - 1
               outcomes[outcome] += current * product(tail) * fails
               full *= head
               current *= head - fails
               return continuation(full, current, outcome + 1, tail, outcomes)
          
          
           def set_value(full, current, outcome, sequence, outcomes, continuation):
               head = sequence[0][0]
               tail = sequence[1:]
               outcomes[outcome] += current * head * product(tail)
               return outcomes
          
          
           def run_sequence(full, current, outcome, sequence, outcomes):
               if not sequence:
                   return outcomes
          
               handler = sequence[0][1]
               return handler(full, current, outcome, sequence, outcomes, run_sequence)
          
          
           save = int(sys.argv[1]) if len(sys.argv) > 1 else 3
           fnp_threshold = int(sys.argv[2]) if len(sys.argv) > 2 else 7
           print("save: {}+".format(save))
           save_threshold = 5 - save
          
           roll_sequence = [
               (6, lambda *args: all_or_nothing(2, *args)),                # to hit
               (6, lambda *args: all_or_nothing(2, *args)),                # to wound
               (6, lambda *args: all_or_nothing(save_threshold , *args)),  # save
               (3, roll_for_damage),                                       # damage
               (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
               (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
               (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
               (6, lambda *args: extra_damage(3, *args)),                  # 3+ extra
               (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
               (6, lambda *args: extra_damage(4, *args)),                  # 4+ extra
               (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
               (6, lambda *args: extra_damage(5, *args)),                  # 5+ extra
               (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
               (6, lambda *args: extra_damage(6, *args)),                  # 6+ extra
               (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
               (1, set_value),
           ]
          
           outcomes = run_sequence(
               1,
               1,
               1,
               roll_sequence,
               list(itertools.repeat(0, 8)),
           )
          
           total_count = sum(outcomes)
           mean = sum([i * x for i, x in enumerate(outcomes)]) / total_count
           print("mean: {}".format(mean))
          
          
           half = total_count / 2
           for i, x in enumerate(outcomes):
               half -= x
               if half <= 0:
                   median = i
                   break
           print("median: {}".format(median))
          
          
           def variance_item(x):
               x = x - mean
               return x * x
           variance = sum([variance_item(i) * x for i, x in enumerate(outcomes)]) / total_count
           s_deviation = math.sqrt(variance)
           print("standard deviation: {}".format(s_deviation))
          
          
           proportions = (
               (25, 0.318639),
               (50, 0.674490),
               (80, 1.281552),
               (90, 1.644854),
           )
           for proportion, interval in proportions:
               min_x = math.trunc(max(0, mean - s_deviation * interval))
               max_x = math.trunc(min(len(outcomes), mean + s_deviation * interval))
               print("{}% of outcomes: [{}, {}]".format(proportion, min_x, max_x))
          
          
           for i, x in enumerate(outcomes):
               print("{} is {:2%} of outcomes".format(i, x / total_count))
           mode = max(enumerate(outcomes), key=lambda x: x[1])
           print("mode: {}".format(mode[0]))


Сообщение отредактировал grisumbras - 22.02.2019, 16:00
Перейтик к верху страницы
 
+Цитировать сообщение
Wlad
сообщение 22.02.2019, 16:54
Сообщение #15953


Chaplain
************

Warhammer 40,000
Раса: Space Marines
Армия: Salamanders
Группа: Пользователь
Сообщений: 1 727
Регистрация: 08.09.2007
Пользователь №: 10 481



Репутация:   183  


Как минимум - не отрабатывается вариант нанесения д6 вундов.
Максимально можно нанести 10 вундов, а не 7.
Перейтик к верху страницы
 
+Цитировать сообщение
grisumbras
сообщение 22.02.2019, 20:27
Сообщение #15954


Maniac!
************

Группа: Пользователь
Сообщений: 1 314
Регистрация: 15.11.2013
Пользователь №: 38 682



Репутация:   137  


Пардон, невнимательно правила прочитал. Чуть попозже переделаю.
Перейтик к верху страницы
 
+Цитировать сообщение
grisumbras
сообщение 24.02.2019, 20:37
Сообщение #15955


Maniac!
************

Группа: Пользователь
Сообщений: 1 314
Регистрация: 15.11.2013
Пользователь №: 38 682



Репутация:   137  


Поправил. В общем, на 5 ран я бы не расчитывал.
без FNP
Код
save: 4+; FNP: 7+
mean: 3.2150205761316872
median: 3
standard deviation: 2.705648849936942
25% of outcomes: [2, 4]
50% of outcomes: [1, 5]
80% of outcomes: [0, 6]
90% of outcomes: [0, 7]
  0 is 30.56% of outcomes
  1 is 3.86% of outcomes
  2 is 7.72% of outcomes
  3 is 10.29% of outcomes
  4 is 11.36% of outcomes
  5 is 11.57% of outcomes
  6 is 11.57% of outcomes
  7 is 7.72% of outcomes
  8 is 3.86% of outcomes
  9 is 1.29% of outcomes
10 is 0.21% of outcomes
mode: 0

save: 3+; FNP: 7+
mean: 2.6791838134430725
median: 2
standard deviation: 2.745186987659309
25% of outcomes: [1, 3]
50% of outcomes: [0, 4]
80% of outcomes: [0, 6]
90% of outcomes: [0, 7]
  0 is 42.13% of outcomes
  1 is 3.22% of outcomes
  2 is 6.43% of outcomes
  3 is 8.57% of outcomes
  4 is 9.47% of outcomes
  5 is 9.65% of outcomes
  6 is 9.65% of outcomes
  7 is 6.43% of outcomes
  8 is 3.22% of outcomes
  9 is 1.07% of outcomes
10 is 0.18% of outcomes
mode: 0

save: 2+; FNP: 7+
mean: 2.1433470507544583
median: 0
standard deviation: 2.6790530832302766
25% of outcomes: [1, 2]
50% of outcomes: [0, 3]
80% of outcomes: [0, 5]
90% of outcomes: [0, 6]
  0 is 53.70% of outcomes
  1 is 2.57% of outcomes
  2 is 5.14% of outcomes
  3 is 6.86% of outcomes
  4 is 7.57% of outcomes
  5 is 7.72% of outcomes
  6 is 7.72% of outcomes
  7 is 5.14% of outcomes
  8 is 2.57% of outcomes
  9 is 0.86% of outcomes
10 is 0.14% of outcomes
mode: 0

FNP6+
Код
save: 4+; FNP: 6+
mean: 2.692222508001829
median: 3
standard deviation: 2.5270667273239606
25% of outcomes: [1, 3]
50% of outcomes: [0, 4]
80% of outcomes: [0, 5]
90% of outcomes: [0, 6]
  0 is 36.34% of outcomes
  1 is 4.58% of outcomes
  2 is 8.58% of outcomes
  3 is 10.77% of outcomes
  4 is 11.45% of outcomes
  5 is 11.22% of outcomes
  6 is 9.34% of outcomes
  7 is 5.14% of outcomes
  8 is 2.02% of outcomes
  9 is 0.50% of outcomes
10 is 0.06% of outcomes
mode: 0

save: 3+; FNP: 6+
mean: 2.2435187566681907
median: 1
standard deviation: 2.515630567590213
25% of outcomes: [1, 3]
50% of outcomes: [0, 3]
80% of outcomes: [0, 5]
90% of outcomes: [0, 6]
  0 is 46.95% of outcomes
  1 is 3.81% of outcomes
  2 is 7.15% of outcomes
  3 is 8.97% of outcomes
  4 is 9.54% of outcomes
  5 is 9.35% of outcomes
  6 is 7.78% of outcomes
  7 is 4.29% of outcomes
  8 is 1.68% of outcomes
  9 is 0.42% of outcomes
10 is 0.05% of outcomes
mode: 0

save: 2+; FNP: 6+
mean: 1.7948150053345526
median: 0
standard deviation: 2.4224074694235327
25% of outcomes: [1, 2]
50% of outcomes: [0, 3]
80% of outcomes: [0, 4]
90% of outcomes: [0, 5]
  0 is 57.56% of outcomes
  1 is 3.05% of outcomes
  2 is 5.72% of outcomes
  3 is 7.18% of outcomes
  4 is 7.63% of outcomes
  5 is 7.48% of outcomes
  6 is 6.23% of outcomes
  7 is 3.43% of outcomes
  8 is 1.34% of outcomes
  9 is 0.33% of outcomes
10 is 0.04% of outcomes
mode: 0

FNP5+
Код
save: 4+; FNP: 5+
mean: 2.2105052583447646
median: 2
standard deviation: 2.3061613042336018
25% of outcomes: [1, 2]
50% of outcomes: [0, 3]
80% of outcomes: [0, 5]
90% of outcomes: [0, 6]
  0 is 42.13% of outcomes
  1 is 5.47% of outcomes
  2 is 9.45% of outcomes
  3 is 11.13% of outcomes
  4 is 11.33% of outcomes
  5 is 10.01% of outcomes
  6 is 6.63% of outcomes
  7 is 2.85% of outcomes
  8 is 0.84% of outcomes
  9 is 0.15% of outcomes
10 is 0.01% of outcomes
mode: 0

save: 3+; FNP: 5+
mean: 1.8420877152873039
median: 0
standard deviation: 2.260672628028253
25% of outcomes: [1, 2]
50% of outcomes: [0, 3]
80% of outcomes: [0, 4]
90% of outcomes: [0, 5]
  0 is 51.77% of outcomes
  1 is 4.56% of outcomes
  2 is 7.87% of outcomes
  3 is 9.27% of outcomes
  4 is 9.44% of outcomes
  5 is 8.34% of outcomes
  6 is 5.53% of outcomes
  7 is 2.38% of outcomes
  8 is 0.70% of outcomes
  9 is 0.13% of outcomes
10 is 0.01% of outcomes
mode: 0

save: 2+; FNP: 5+
mean: 1.473670172229843
median: 0
standard deviation: 2.152077723741157
25% of outcomes: [0, 2]
50% of outcomes: [0, 2]
80% of outcomes: [0, 4]
90% of outcomes: [0, 5]
  0 is 61.42% of outcomes
  1 is 3.65% of outcomes
  2 is 6.30% of outcomes
  3 is 7.42% of outcomes
  4 is 7.55% of outcomes
  5 is 6.67% of outcomes
  6 is 4.42% of outcomes
  7 is 1.90% of outcomes
  8 is 0.56% of outcomes
  9 is 0.10% of outcomes
10 is 0.01% of outcomes
mode: 0

Код
Код
#!/usr/bin/env python3


import itertools
import math
import sys
from functools import reduce


def product(seq):
     return reduce((lambda a, b: a * b[0]), seq, 1)


def all_or_nothing(threshold, full, current, outcome, sequence, outcomes, continuation):
     head = sequence[0][0]
     tail = sequence[1:]
     fails = threshold - 1
     outcomes[0] += current * product(tail) * fails
     full *= head
     current *= head - fails
     return continuation(full, current, outcome, tail, outcomes)


def roll_for_damage(full, current, outcome, sequence, outcomes, continuation):
     head = sequence[0][0]
     tail = sequence[1:]
     full *= head
     for roll in range(1, head + 1):
         outcomes = continuation(full, current, roll, tail, outcomes)
     return outcomes


def fnp(threshold, full, current, outcome, sequence, outcomes, continuation):
     head = sequence[0][0]
     tail = sequence[1:]
     successes = threshold - 1
     fails = head - successes
     failed_outcome = outcome - 1
     full *= head
     if failed_outcome <= 0:
         outcomes[0] += current * product(tail) * fails
         current *= head - fails
         outcomes = continuation(full, current, outcome, tail, outcomes)
     else:
         outcomes = continuation(full, current * fails, failed_outcome, tail, outcomes)
         outcomes = continuation(full, current * successes, outcome, tail, outcomes)
     return outcomes


def extra_damage(threshold, full, current, outcome, sequence, outcomes, continuation):
     head = sequence[0][0]
     tail = sequence[1:]
     fails = threshold - 1
     outcomes[outcome] += current * product(tail) * fails
     full *= head
     current *= head - fails
     return continuation(full, current, outcome + 1, tail, outcomes)


def set_value(full, current, outcome, sequence, outcomes, continuation):
     head = sequence[0][0]
     tail = sequence[1:]
     outcomes[outcome] += current * head * product(tail)
     return outcomes


def run_sequence(full, current, outcome, sequence, outcomes):
     if not sequence:
         return outcomes

     handler = sequence[0][1]
     return handler(full, current, outcome, sequence, outcomes, run_sequence)


save = int(sys.argv[1]) if len(sys.argv) > 1 else 3
fnp_threshold = int(sys.argv[2]) if len(sys.argv) > 2 else 7
print("save: {}+; FNP: {}+".format(save, fnp_threshold))
save_threshold = 5 - save

roll_sequence = [
     (6, lambda *args: all_or_nothing(2, *args)),                # to hit
     (6, lambda *args: all_or_nothing(2, *args)),                # to wound
     (6, lambda *args: all_or_nothing(save_threshold , *args)),  # save
     (6, roll_for_damage),                                       # damage
     (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
     (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
     (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
     (6, lambda *args: extra_damage(3, *args)),                  # 3+ extra
     (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
     (6, lambda *args: extra_damage(4, *args)),                  # 4+ extra
     (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
     (6, lambda *args: extra_damage(5, *args)),                  # 5+ extra
     (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
     (6, lambda *args: extra_damage(6, *args)),                  # 6+ extra
     (6, lambda *args: fnp(fnp_threshold, *args)),               # FNP
     (1, set_value),
]

outcomes = run_sequence(
     1,
     1,
     1,
     roll_sequence,
     list(itertools.repeat(0, 11)),
)

total_count = sum(outcomes)
mean = sum([i * x for i, x in enumerate(outcomes)]) / total_count
print("mean: {}".format(mean))


half = total_count / 2
for i, x in enumerate(outcomes):
     half -= x
     if half <= 0:
         median = i
         break
print("median: {}".format(median))


def variance_item(x):
     x = x - mean
     return x * x
variance = sum([variance_item(i) * x for i, x in enumerate(outcomes)]) / total_count
s_deviation = math.sqrt(variance)
print("standard deviation: {}".format(s_deviation))


proportions = (
     (25, 0.318639),
     (50, 0.674490),
     (80, 1.281552),
     (90, 1.644854),
)
for proportion, interval in proportions:
     min_x = math.trunc(max(0, mean - s_deviation * interval))
     max_x = math.trunc(min(len(outcomes), mean + s_deviation * interval))
     print("{}% of outcomes: [{}, {}]".format(proportion, min_x, max_x))


for i, x in enumerate(outcomes):
     print("{:2} is {:.2%} of outcomes".format(i, x / total_count))
mode = max(enumerate(outcomes), key=lambda x: x[1])
print("mode: {}".format(mode[0]))


Сообщение отредактировал grisumbras - 24.02.2019, 20:39
Перейтик к верху страницы
 
+Цитировать сообщение
Nimbar
сообщение 25.02.2019, 06:12
Сообщение #15956


Servitor
***

Warhammer 40,000
Раса: Adeptus Mechanicus
Армия: Explorator Expedition
Группа: Пользователь
Сообщений: 98
Регистрация: 17.12.2018
Из: Михайловск, Свердловская Область
Пользователь №: 66 087



Репутация:   13  


Цитата(grisumbras @ 24.02.2019, 22:37) *
Поправил. В общем, на 5 ран я бы не расчитывал.
без FNP
Код
save: 4+; FNP: 7+
mean: 3.2150205761316872
median: 3
standard deviation: 2.705648849936942
25% of outcomes: [2, 4]
50% of outcomes: [1, 5]
80% of outcomes: [0, 6]
90% of outcomes: [0, 7]
  0 is 30.56% of outcomes
  1 is 3.86% of outcomes
  2 is 7.72% of outcomes
  3 is 10.29% of outcomes
  4 is 11.36% of outcomes
  5 is 11.57% of outcomes
  6 is 11.57% of outcomes
  7 is 7.72% of outcomes
  8 is 3.86% of outcomes
  9 is 1.29% of outcomes
10 is 0.21% of outcomes
mode: 0



Объясните кто-нть что это такое, как это читать, и где это найти...
Перейтик к верху страницы
 
+Цитировать сообщение
Senior G
сообщение 25.02.2019, 08:19
Сообщение #15957


Chapter Master
************

Warhammer 40,000
Раса: Space Marines
Армия: Blood Angels
Группа: Пользователь
Сообщений: 1 685
Регистрация: 03.10.2007
Из: Штаб дивизии тяжелых пулеметов
Пользователь №: 10 781



Репутация:   443  


Цитата(Nimbar @ 25.02.2019, 07:12) *
Объясните кто-нть что это такое, как это читать, и где это найти...

Это индусский код, не обращай внимание.


--------------------
"Be bloody, bold and resolute!"
"Это солдаты. Их ставят в шеренги, кидают кубики, а потом они умирают."
"В сорок первом тысячелетии людей ждет мракобесие и военные дизайны от гуманитарев."
Перейтик к верху страницы
 
+Цитировать сообщение
grisumbras
сообщение 25.02.2019, 09:42
Сообщение #15958


Maniac!
************

Группа: Пользователь
Сообщений: 1 314
Регистрация: 15.11.2013
Пользователь №: 38 682



Репутация:   137  


Цитата(Nimbar @ 25.02.2019, 06:12) *
Объясните кто-нть что это такое, как это читать, и где это найти...


mean — математическое ожидание. Средняя температура по больнице. Если сделаешь миллиард выстрелов, сложишь все полученные раны и разделишь на миллиард, то получишь примерно это.

median — медиана. Результат ровно по середине распределения. Вероятность исходов не лучше этого - 50%, вероятность исходов не хуже этого — 50%.

standard deviation — среднеквадратичное отклонение. Характеристика разброса исходов, чем она выше — тем меньше надежность получить что-то близкое к мат. ожиданию.

N% of outcomes — диапазон в который входит мат. ожидание и еще N% возможных исходов. Иначе говоря, с вероятностью N% результат будет такой. Я тут, правда, использую допущение, что случайная величина — нормальная, а это явно не так.

mode — мода. Самый часто встречающийся результат. Здесь это бесполезный параметр, во всех случаях он равен нулю.

Сообщение отредактировал grisumbras - 25.02.2019, 09:51
Перейтик к верху страницы
 
+Цитировать сообщение
Nimbar
сообщение 26.02.2019, 12:53
Сообщение #15959


Servitor
***

Warhammer 40,000
Раса: Adeptus Mechanicus
Армия: Explorator Expedition
Группа: Пользователь
Сообщений: 98
Регистрация: 17.12.2018
Из: Михайловск, Свердловская Область
Пользователь №: 66 087



Репутация:   13  


Спасибо большое
Перейтик к верху страницы
 
+Цитировать сообщение
Wlad
сообщение 26.02.2019, 15:32
Сообщение #15960


Chaplain
************

Warhammer 40,000
Раса: Space Marines
Армия: Salamanders
Группа: Пользователь
Сообщений: 1 727
Регистрация: 08.09.2007
Пользователь №: 10 481



Репутация:   183  


Цитата(grisumbras @ 25.02.2019, 00:37) *
В общем, на 5 ран я бы не расчитывал.


Судя по твоим расчетам, шанс убрать со стола 5-вундовую пехотную модель в 4+ или хуже и без ФНП (например, Иврейн) 1м выстрелом составляет 36.22%.
Это мало?
На 5+ убрать ключевого персонажа противника... как по мне - так норм.
Перейтик к верху страницы
 
+Цитировать сообщение

993 страниц V  « < 796 797 798 799 800 > » 
Закрытая темаЗапустить новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 20.04.2024 - 08:08