Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
11
Task/Hailstone-sequence/MATLAB/hailstone-sequence-1.m
Normal file
11
Task/Hailstone-sequence/MATLAB/hailstone-sequence-1.m
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
function x = hailstone(n)
|
||||
x = n;
|
||||
while n > 1
|
||||
% faster than mod(n, 2)
|
||||
if n ~= floor(n / 2) * 2
|
||||
n = n * 3 + 1;
|
||||
else
|
||||
n = n / 2;
|
||||
end
|
||||
x(end + 1) = n; %#ok
|
||||
end
|
||||
2
Task/Hailstone-sequence/MATLAB/hailstone-sequence-2.m
Normal file
2
Task/Hailstone-sequence/MATLAB/hailstone-sequence-2.m
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
x = hailstone(27);
|
||||
fprintf('hailstone(27): %d %d %d %d ... %d %d %d %d\nnumber of elements: %d\n', x(1:4), x(end-3:end), numel(x))
|
||||
9
Task/Hailstone-sequence/MATLAB/hailstone-sequence-3.m
Normal file
9
Task/Hailstone-sequence/MATLAB/hailstone-sequence-3.m
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
N = 1e5;
|
||||
maxLen = 0;
|
||||
for k = 1:N
|
||||
kLen = numel(hailstone(k));
|
||||
if kLen > maxLen
|
||||
maxLen = kLen;
|
||||
n = k;
|
||||
end
|
||||
end
|
||||
18
Task/Hailstone-sequence/MATLAB/hailstone-sequence-4.m
Normal file
18
Task/Hailstone-sequence/MATLAB/hailstone-sequence-4.m
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
function [n, maxLen] = longestHailstone(N)
|
||||
maxLen = 0;
|
||||
for k = 1:N
|
||||
a = k;
|
||||
kLen = 1;
|
||||
while a > 1
|
||||
if a ~= floor(a / 2) * 2
|
||||
a = a * 3 + 1;
|
||||
else
|
||||
a = a / 2;
|
||||
end
|
||||
kLen = kLen + 1;
|
||||
end
|
||||
if kLen > maxLen
|
||||
maxLen = kLen;
|
||||
n = k;
|
||||
end
|
||||
end
|
||||
3
Task/Hailstone-sequence/MATLAB/hailstone-sequence-5.m
Normal file
3
Task/Hailstone-sequence/MATLAB/hailstone-sequence-5.m
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
>> [n, maxLen] = longestHailstone(1e5)
|
||||
n = 77031
|
||||
maxLen = 351
|
||||
22
Task/Hailstone-sequence/MATLAB/hailstone-sequence-6.m
Normal file
22
Task/Hailstone-sequence/MATLAB/hailstone-sequence-6.m
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
function [n, maxLen] = longestHailstone(N)
|
||||
lenList(N) = 0;
|
||||
lenList(1) = 1;
|
||||
maxLen = 0;
|
||||
for k = 2:N
|
||||
a = k;
|
||||
kLen = 0;
|
||||
while a >= k
|
||||
if a == floor(a / 2) * 2
|
||||
a = a / 2;
|
||||
else
|
||||
a = a * 3 + 1;
|
||||
end
|
||||
kLen = kLen + 1;
|
||||
end
|
||||
kLen = kLen + lenList(a);
|
||||
lenList(k) = kLen;
|
||||
if kLen > maxLen
|
||||
maxLen = kLen;
|
||||
n = k;
|
||||
end
|
||||
end
|
||||
3
Task/Hailstone-sequence/MATLAB/hailstone-sequence-7.m
Normal file
3
Task/Hailstone-sequence/MATLAB/hailstone-sequence-7.m
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
>> [n, maxLen] = longestHailstone(1e5)
|
||||
n = 77031
|
||||
maxLen = 351
|
||||
Loading…
Add table
Add a link
Reference in a new issue