Skip to content

Instantly share code, notes, and snippets.

@constructor-s
Created June 29, 2020 13:49
Show Gist options
  • Save constructor-s/5f0a4f39008beca944c1015227c3a816 to your computer and use it in GitHub Desktop.
Save constructor-s/5f0a4f39008beca944c1015227c3a816 to your computer and use it in GitHub Desktop.
% M up N down
% stays the same unless
% all previous M trials are 0 -> stop up, go down
% all previous N trials are 1 -> stop down, go up
m = 1
n = 1
d = 5
num = 1e7
phi = @(x) atan(1*x)/pi + 0.5
rng(1)
ii = 1;
X = zeros(num, ii);
X(ii) = -1;
R = zeros(num, ii);
R(ii) = rand > phi(X(ii));
tic
for ii = 2:num
if ii > m && all(R(ii-m:ii-1) == 0) && all(X(ii-m:ii-1) == X(ii-1))
X(ii) = X(ii-1) - d;
R(ii) = rand > phi(X(ii));
% disp('down');
elseif ii > n && all(R(ii-n:ii-1) == 1) && all(X(ii-n:ii-1) == X(ii-1))
X(ii) = X(ii-1) + d;
R(ii) = rand > phi(X(ii));
% disp('up');
else
X(ii) = X(ii-1);
R(ii) = rand > phi(X(ii));
% disp('same');
end
end
toc
% plot(X)
mea = mean(X(end-num/10:end))
phi(mea)
med = median(X(end-num/10:end))
phi(med)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment