Программирование включает неравенство (R) - PullRequest
0 голосов
/ 20 мая 2018

Это то, что я сделал, учитывая, что h = 5 и получил значение ARL = 2,5.

C=[1,5,8,9,7,8,1,2,5,5]
h=5
n=10
ooc=C>h
lenOOC = sum(ooc)
lenOOC
>4
p=lenOOC/n
p
>0.4
ARL=1/p
ARL
>2.5

Но теперь мне нужно дать значение ARL и вычислить значение h =?например, с тем же набором данных C.

ARL=1.428571
n=10
lenOOC=n/ARL
lenOOC
>7...

и как перейти к получению значения h?учитывая ooc=C>h.

Надеюсь, вы все можете понять, что я пытаюсь спросить .. Спасибо за помощь .. =]]

1 Ответ

0 голосов
/ 20 мая 2018

lenOOC=n/ARL Вы хотите ч, чтобы lenOOC = sum(C>h).то есть вы хотите найти число h, чтобы lenOOC чисел было строго больше, чем h.То же самое, что n - lenOOC меньше или равно h, поэтому вам нужно самое большое число n - lenOOC.Просто отсортируйте числа в C и выберите наибольшее число n - lenOOC.

C=c(1,5,8,9,7,8,1,2,5,5)
ARL=1.428571
n=10
lenOOC=n/ARL
sort(C)[n - round(lenOOC)]
[1] 2

Итак, h = 2.

Но обратите внимание, что это не будет работать для всех значений ARL.Что если бы мы попытались ARL = 10/9 = 1.1111111. Это дало бы

ARL=1.111111
lenOOC=n/ARL
sort(C)[n - round(lenOOC)]
[1] 1

Но h = 1 фактически дало бы ARL = 1,25 . Ни одно число не дало бы ARL = 1,111111.Вышеуказанный метод работает только для возможных значений ARL.

...