Մասնակցի քննարկում:Tigran Jangozyan
Ողջույն[խմբագրել կոդը]
|
Ուշացումով Ֆիբոնաչիի գեներատորը[խմբագրել կոդը]
Ուշացումով Ֆիբոնաչիի գեներատորը պատահական թվերի գեներատորի օրինակ է: Այս դասի պատահական թվերի գեներատորը ուղղված է բարելավելու 'ստանդարտ' գծային ներդաշնակ գեներատորները. Սրանք հիմնված են Ֆիբոնաչիի հաջորդականության ընդհանրացման վրա: Ֆիբոնաչիի հաջորդականությունը կարող է բնութագրվել կրկնվող հարաբերությամբ: Sn = Sn − 1 + Sn − 2 Հետևաբար նոր ստացվող թիվը հաջորդականության նախորդ երկու թվերի գումարն է: Սա ընդհանրացված հաջորդականությունն է:
Որի դեպքում նոր ստացվող թիվը նախորդ երկու թվերի որոշակի կոմբինացիա է. m-ը սովորաբար 2-ի որոշակի աստիճան է: (m = 2M), հաճախ 232 կամ 264. oպերատորը հիմնականում բինար գործողություն է. Սա կարող է լինել գումարում, հանում, բազմապատկում կամ էլ բիթային գործողություն թվաբանական բացառիկ-կամ օպերատոր(XOR).Այս տիպի գեներատորների օգտագործման մեխանիզմը բավականին բարդ է, և դժվար է ընտրել j և k-ի համար պատահական թվեր:
Եթե կատարվող գործողությունը գումարում է , ապա գեներատորն անվանում են գումարմամբ ուշացման Ֆիբոնաչիի գեներատոր, եթե բազմապատկում է, ապա բազմապատկմամբ ուշացման Ֆիբոնաչիի գեներատոր, և եթե գործողությունը յուրահատուկ-կամ է XOR, գործողությունն անվանում են երկհնարավոր ընդհանրացված հետադարձ քայլով մուտքագրում: Մերսենի ոլորապտույտ ալգորիթմը երկհնարավոր ընդհանրացված գեներատորի տարատեսակ է: Վերջինս նման է նաև գծային հետադարձ կապով գեներատորի ալգորիթմին:
Ուշացումով Ֆիբոնաչիի գեներատորի հատկությունները[խմբագրել կոդը]
Ուշացումով Ֆիբոնաչիի գեներատորը կատարվում է (2k - 1)*2M-1 անգամ, եթե կատարվող գործողությունը գումարու կամ հանում է, և (2k-1)*k, եթե գործողությունը յուրահատուկ-կամ է: Մյուս կողմից, եթե կատարվում է բազմապատկում (2k - 1)*2M-3 կամ գումարման 1/4-ը: Այս մաքսիմում քանակին հասնելու համար անհրաժեշտ բազմանդամի տեսքն է
y = xk + xj + 1
j և k-ի այս հավասարմանը բավարարող արժեքներից ամենաճանաչվածներն են
{j = 7, k = 10}, {j = 5, k = 17}, {j = 24, k = 55}, {j = 65, k = 71}, {j = 128, k = 159} [1], {j = 6, k = 31}, {j = 31, k = 63}, {j = 97, k = 127}, {j = 353, k = 521}, {j = 168, k = 521}, {j = 334, k = 607}, {j = 273, k = 607}, {j = 418, k = 1279}
j և k-ի բոլոր այն հարաբերությունները, որոնք բավարարում են հավասարմանը, անվանում են ոսկե հարաբերություն: