Добрый день. Подскажите, как реализовать метод середин квадратов на си. Есть пример кода функции на паскале:
var xi: longint; {глобальная переменная; сюда изначально
должна быть помещена затравка}
function rrsch:real;
begin
xi:=((xi*xi) shr 7) and $3FFF; {28 бит - квадрат, 14 бит - число}
if xi=0 then begin
Random( …); {заносит в RandSeed очередное псевдослучайное число - затравку}
xi:=RandSeed and $3FFF;
end;
rrsch:=xi/$4000; {двоичное 01000000 00000000}
end;
Если, например, брать середину квадрата от числа 4824, то 4824^2=23270976 нам нужно будет взять из этого числа 2709. Как я понял это нужно сделать с помощью оператора побитового сдвига, однако реализовать его у меня так и не получилось.
Свежие комментарии