Сейчас 20:17:43 Четверг, 26 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Подскажите формулы.
LancerokДата: Вторник, 06 Декабря 2011, 14:27:54 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Ребята, в общем такая проблема. Мне нужна формула как просчитать шанс на критический удар, но не такая типа

Действие: Set Paladin_Crit_Chance = (Random integer number between (1) and (10)
Если Paladin_Crit_Chance = 1 то критует иначе нет.
Такой разклад меня устраивал вполне, до тех пор пока я не решил сделать "модификатор шанса на критический удар", то есть проблема в том, что если я буду уменьшать максимальное число, которое равно (10) тем самым повышая шанс выпадения (1), то шанс на крит будет повышаться в такой прогрессии;
(1 к 10 = 10%)
(1 к 9 = 11.1%)
(1 к 8 = 12.5%)
(1 к 7 = 14.2%)
(1 к 6 = 16.6%)
(1 к 5 = 20%)
(1 к 4 = 25%)
(1 к 3 = 33.3%)
(1 к 2 = 50%)

Но меня интересует вопрос, какой формулой нужно пользоваться что бы допустим при получении предмета, предмет давал +7% к шансу на крит. Потому что при таком раскладе такое сделать нельзя. Ибо если шанс на крит равен - 1 к 3(33%) то, при получении предмета, максимальное что можно повысить, это до 1 к 2(50%). Так что прошу привести примеры, какие еще формулы можно использовать.
П.С Я музыкант, и не силен в математике, просто провожу свободное время в редакторе варика. Так что не чмырите меня сильно)
 

BUUNIДата: Вторник, 06 Декабря 2011, 14:32:43 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 347
Награды: 1
Репутация: 53
Блокировки:
Может сделать что-то типо:
(1 к 9,5555..)

Ну или подобие


 

LancerokДата: Вторник, 06 Декабря 2011, 14:38:26 | Сообщение # 3
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Quote (BUUNI)
Может сделать что-то типо:
(1 к 9,5555..)

Ну или подобие

Пробовал я с реальными, типа 0.01 и 1.00 если равно 0.01. то крит, но так тоже не получается, потому что в итоге выйдут те же 50%, так как дойдет до 0.01 и 0.02 = 50%

Добавлено (06 Декабрь 2011, 14:38:26)
---------------------------------------------
Да и вообще интересуют формулы, не типа - число от (n) до (n), если (n) = 1 то крит. Какие еще способы есть, очень интересно.

 

Ty3uKДата: Вторник, 06 Декабря 2011, 15:09:29 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Lancerok, люди давно уже считают в варике шансы через 1 к 100, так лечге настроить малую вероятность.
П.с. Я тоже музыкант, и что?


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

LancerokДата: Вторник, 06 Декабря 2011, 15:20:06 | Сообщение # 5
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Quote (Ty3uK)
П.с. Я тоже музыкант, и что?

К тому, что нету времени разбираться в дажсе, да и вообще особо заниматься чем-то кроме музыки.
Ну а кроме способа 1 к 100 есть варианты ?

Добавлено (06 Декабрь 2011, 15:20:06)
---------------------------------------------

Quote (Lancerok)
Lancerok, люди давно уже считают в варике шансы через 1 к 100, так лечге настроить малую вероятность.

Даже допустим если считать все таки по этой формуле, можно ли добиться шанса на крит не привязанного к такой прогрессии ? 10,11,12,14,16,20,25,33,50. ну в смысле если у тебя шанс равен уже 33% то следующий процент то будет в любом случае 50%, какие способы еще есть, может подскажешь ?
 

Ty3uKДата: Вторник, 06 Декабря 2011, 15:24:13 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Quote (Lancerok)
если у тебя шанс равен уже 33% то следующий процент то будет в любом случае 50%

что за странная математика? о_О если шанс равен 33, то ты можешь сделать его 34, в чем проблема? о_О


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

LancerokДата: Вторник, 06 Декабря 2011, 15:31:17 | Сообщение # 7
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Quote (Ty3uK)
что за странная математика? о_О если шанс равен 33, то ты можешь сделать его 34, в чем проблема? о_О

Я имею ввиду при рандоме от 1 к 3(Который равен 33%) следующий может быть 1 к 2 и выйдет 50%, опиши пожалуйста, как бы ты подошел к этому вопросу.

Добавлено (06 Декабрь 2011, 15:31:17)
---------------------------------------------
В смысле повышения шанса по 1 по 1.5% а не вот так.

 

Ty3uKДата: Вторник, 06 Декабря 2011, 15:31:20 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Lancerok, окей, пишу еще раз.
Code
local real i = GetRandomreal(1., 100.) //берем рандом число между 1 и 100
set i = i + .5 //прибавляем 0.5, т.е. увеличиваем шанс на 0.5%


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Вторник, 06 Декабря 2011, 15:32:21
 

LancerokДата: Вторник, 06 Декабря 2011, 15:41:10 | Сообщение # 9
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Quote (Ty3uK)
ocal real i = GetRandomreal(1., 100.) //берем рандом число между 1 и 100
set i = i + .5 //прибавляем 0.5, т.е. увеличиваем шанс на 0.5%

Спасибо, буду разбираться.
 

Ty3uKДата: Вторник, 06 Декабря 2011, 15:45:05 | Сообщение # 10
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
это пример на жассе, если на гуи, то там тот же принцип

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

LancerokДата: Вторник, 06 Декабря 2011, 15:46:46 | Сообщение # 11
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Quote (Ty3uK)
это пример на жассе, если на гуи, то там тот же принцип

Да да, я понял суть. еще и свои мысли возникли по этому поводу.
 

ExtrematorДата: Вторник, 06 Декабря 2011, 16:04:43 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
1 к X
если брать реальныи то число будет (100.00 / X)
и теперь формул выглядит как

1 к X
% шанса = (100.00 / X)

теперь просто устанавливаешь X на нужно значение и процент сам выпадет...

если я канешно верно понял чего хотел автор...


Сообщение отредактировал Extremator - Вторник, 06 Декабря 2011, 16:05:09
 

HexingДата: Вторник, 06 Декабря 2011, 16:06:52 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Code
local real seed = GetRandomReal(0., 100.)
local real bonus = 10. //+10% от шмоток
local real lvl = I2R(GetHeroLevel(HERO))
local real agi = I2R(GetHeroAgi(HERO,true))
local real chance = agi/( (lvl+4)(lvl+4) ) + bonus
if(seed <= chance) then
  call BJDebugMsg("крит млеа")
endif


разумеется расписал ввиде переменных ради наглядности, можешь потом оптимизировать


 

ExtrematorДата: Вторник, 06 Декабря 2011, 16:14:27 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Lancerok)
предмет давал +7% к шансу на крит


set I = 10 - твоё целое число
set R = (100.00 / I ) - узнаём шанс по числу

set R = R + 7.00 - увеличили шанс если есть предмет дающий +7% к криту

итого... 100 / 10 + 7 = 10 + 7 = 17 (%) ...верно?

Добавлено (06 Декабрь 2011, 16:14:27)
---------------------------------------------
Ну а дальше по старинке...
Если (случайное число от 1 до 100) меньше или равно ( R )
То - выпал крит


Сообщение отредактировал Extremator - Вторник, 06 Декабря 2011, 16:20:30
 

HexingДата: Вторник, 06 Декабря 2011, 16:19:21 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Extremator, зачем так сложно?

set I = 10 - твоё целое число
set R = (100.00 / I ) - узнаём шанс по числу
это ваще что?

похоже у вас тут проблемы с основами теории вероятности?
автор, чем определяется вероятность крита? она всегда 10%+шансы от шмоток или как?




Сообщение отредактировал Hexing - Вторник, 06 Декабря 2011, 16:19:38
 

ExtrematorДата: Вторник, 06 Декабря 2011, 16:22:45 | Сообщение # 16
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Hexing)
зачем так сложно?

у него I может быть от 2 до 10+ ...мб лимит 20-40... вот и считай ))

Добавлено (06 Декабрь 2011, 16:22:45)
---------------------------------------------
я просто привёл (set I = N) где "N" это то число которое он высчитает как "1 к N"


Сообщение отредактировал Extremator - Вторник, 06 Декабря 2011, 16:23:41
 

LancerokДата: Вторник, 06 Декабря 2011, 16:30:23 | Сообщение # 17
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Ребят, спасибо, вот теперь инфы достаточно, не зря сюда написал)

Добавлено (06 Декабрь 2011, 16:30:23)
---------------------------------------------

Quote (Hexing)
автор, чем определяется вероятность крита? она всегда 10%+шансы от шмоток или как?

Изначальная 5%, + можно качать плюсики которые ее повышают, соответственно по твоему принципу, добавить к первому числу столько, сколько мне нужно.
 

ExtrematorДата: Вторник, 06 Декабря 2011, 16:32:48 | Сообщение # 18
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Lancerok, вообще ответ у тебя в вопросе
(1 к 10 = 10%) = 1 / 10 = 10
(1 к 9 = 11.1%) = 1 / 9 = 11.1
(1 к 8 = 12.5%) = 1 / 8 = 12.5
(1 к 7 = 14.2%) = 1 / 7 = 14.2
(1 к 6 = 16.6%) = 1 / 6 = 16.6
(1 к 5 = 20%) = 1 / 5 = 20
(1 к 4 = 25%) = 1 / 4 = 25
(1 к 3 = 33.3%) = 1 / 3 = 33.3
(1 к 2 = 50%) = 1 / 2 = 50


Сообщение отредактировал Extremator - Вторник, 06 Декабря 2011, 16:33:36
 

LancerokДата: Вторник, 06 Декабря 2011, 16:34:00 | Сообщение # 19
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
То есть, если переменная больше или равна 100 то проходит крит, так ведь ?

Добавлено (06 Декабрь 2011, 16:34:00)
---------------------------------------------

Quote (Extremator)
(1 к 10 = 10%) = 1 / 10 = 10
(1 к 9 = 11.1%) = 1 / 9 = 11.1
(1 к 8 = 12.5%) = 1 / 8 = 12.5
(1 к 7 = 14.2%) = 1 / 7 = 14.2
(1 к 6 = 16.6%) = 1 / 6 = 16.6
(1 к 5 = 20%) = 1 / 5 = 20
(1 к 4 = 25%) = 1 / 4 = 25
(1 к 3 = 33.3%) = 1 / 3 = 33.3
(1 к 2 = 50%) = 1 / 2 = 50

Ну а как тут сделаешь шанс 73% допустим ?
 

ExtrematorДата: Вторник, 06 Декабря 2011, 16:36:06 | Сообщение # 20
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Lancerok)
То есть, если переменная больше или равна 100 то проходит крит, так ведь ?

(случайное число от 1.00 до 100.00) меньше или равно ( R ), то КРИТ

если случайно выпало 23.74 а у тебя R = 17.00
то у тебя (23.74) больше (17.00) - крит не выпал

если случайно выпало 12.51 а у тебя R = 17.00
то у тебя (12.51) меньше (17.00) - крит выпал
 

oleg_best_olegДата: Вторник, 06 Декабря 2011, 16:36:55 | Сообщение # 21
Группа: Заблокированные
Сообщений: 1726
Награды: 0
Репутация: 654
Блокировки:
Quote (Lancerok)
73% д

тебе уже дали ответ несколько раз: от 1 до 100
если chance = меньше или равно 73
то бла-бла-бла
 

ExtrematorДата: Вторник, 06 Декабря 2011, 16:37:45 | Сообщение # 22
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Lancerok)
Ну а как тут сделаешь шанс 73% допустим ?

ну если ты расчитываешь шанс как (1 к ЧИCЛУ), то у тебя последний шанс только 50% и 100%... +% который ты прибавишь предметами и способностями...
 

LancerokДата: Вторник, 06 Декабря 2011, 16:44:12 | Сообщение # 23
1 уровень
Группа: Пользователи
Сообщений: 16
Награды: 0
Репутация: 0
Блокировки:
Ребят, вот как я понял все что вы написали, просто скажите, к правильному ли я выводу пришел.
Берем Реальную переменную от 0 до 100.
Если у героя допустим шмотка дающая + 10 к первому реальному числу, т.е. к (0)
То в итоге получится шанс на крит 10% так ведь, так как переменная уже выбирает не между 0 и 100, а между 10 и 100.
ну а крит проходит если переменная равна 100 правильно ?

Добавлено (06 Декабрь 2011, 16:44:12)
---------------------------------------------
В любом случае спасибо, очень помогли мне. Я просто не правильно просчитывал все.

 

HexingДата: Вторник, 06 Декабря 2011, 17:10:53 | Сообщение # 24
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Lancerok)
Ребят, вот как я понял все что вы написали, просто скажите, к правильному ли я выводу пришел.
Берем Реальную переменную от 0 до 100.
Если у героя допустим шмотка дающая + 10 к первому реальному числу, т.е. к (0)
То в итоге получится шанс на крит 10% так ведь, так как переменная уже выбирает не между 0 и 100, а между 10 и 100.
ну а крит проходит если переменная равна 100 правильно ?

Добавлено (06 Декабрь 2011, 16:44:12)
---------------------------------------------
В любом случае спасибо, очень помогли мне. Я просто не правильно просчитывал все.

нет нет и еще раз нет, всё не верно
берём случайное число от 0 до 100(оно всегда такое и с ним ничего не поделаешь
а вот пусть переменная chance будет у нас зависить от шмоток и плюсиков твоих
тогда к примеру chance = 5.0(5%) + "плюсы" + "шмоткрит" = скажем 27.43%
и вот тут делаем проверку
if(number которое случайное между 0 и 100 <= меньше или равно chance) then
тоесть смотри
представь что 100 раз ударяет герой
ему выпадает 0,1,2...99
за все эти сто случаев 27 будут критическими
так как 0 < 27, 1 < 27... 26 < 27 => 27 случаев = 27%
endif
но точность еще выше ибо GetRandomReal(0., 100.) вернут число от 0.00 до 100.00(включая 0.01 и тп)

у вас очень странная логика, но не волнуйтесь, у программистов со временем это всё само приходит ;)


 

ExtrematorДата: Вторник, 06 Декабря 2011, 17:11:53 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
у тебя шанс всегда буде случайный от 1 до 100
а ты лишь проверяешь со всоим реальным шансом.. например 20 %
если у тя выпало 20 или меньше то твой шанс 20 % был покрыт - крит выпал
если у тя выпало больше 20 то твой шанс 20 % не был покарыт - крит не выпал!
 

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz