Skip to content

Commit a1b14b0

Browse files
authored
Update index.html
1 parent d7e8ba5 commit a1b14b0

1 file changed

Lines changed: 203 additions & 3 deletions

File tree

index.html

Lines changed: 203 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,18 +123,219 @@ <h2>📝 Editor</h2>
123123
const clamp = (v, mn, mx) => Math.max(mn, Math.min(mx, v));
124124
const clip_min = (x) => Math.min(x, 0);
125125
const clip_max = (x) => Math.max(x, 0);
126+
function gcd(a, b) {
127+
while (b) {
128+
[a, b] = [b, a % b];
129+
}
130+
return a;
131+
}
126132
function primes(n) {
127-
const result = [];
133+
const seq = [];
128134
for (let i = 2; i <= n; i++) {
129135
let isPrime = true;
130136
for (let j = 2; j * j <= i; j++) {
131137
if (i % j === 0) { isPrime = false; break; }
132138
}
133-
if (isPrime) result.push(i);
139+
if (isPrime) { seq.push(i); }
140+
}
141+
return seq;
142+
}
143+
144+
function factorial(n) {
145+
if (n <= 0) return [];
146+
const seq = [1];
147+
for (let i = 2; i <= n; i++) {
148+
seq.push(seq[seq.length - 1] * i);
149+
}
150+
return seq;
151+
}
152+
153+
function fib(n) {
154+
if (n <= 0) return [];
155+
if (n === 1) return [0];
156+
const seq = [0, 1];
157+
for (let i = 2; i < n; i++) {
158+
seq.push(seq[i - 1] + seq[i - 2]);
159+
}
160+
return seq;
161+
}
162+
163+
function mersenne(n) {
164+
const seq = [];
165+
for (let i = 1; i <= n; i++) {
166+
seq.push(Math.pow(2, i) - 1);
167+
}
168+
return seq;
169+
}
170+
171+
function geometric(start, ratio, count) {
172+
const seq = [];
173+
for (let i = 0; i < count; i++) {
174+
seq.push(Math.pow(ratio, i) * start);
175+
}
176+
return seq;
177+
}
178+
179+
function arithmetic(start, diff, count) {
180+
const seq = [];
181+
for (let i = 0; i < count; i++) {
182+
seq.push(start + i * diff);
183+
}
184+
return seq;
185+
}
186+
187+
function primePolynomial(n, coff1, coff2, coff3) { /// 11, 17, 41
188+
const seq = [];
189+
for (let i = 0; i <= n; i++) {
190+
seq.push(coff1 * i * i + coff2 * i + coff3);
191+
}
192+
return seq;
193+
}
194+
195+
function catalan(n) {
196+
if (n <= 0) return [];
197+
const seq = [1];
198+
for (let i = 1; i < n; i++) {
199+
seq.push(seq[i-1] * 2 * (2 * i - 1) / (i + 1));
200+
}
201+
return seq;
202+
}
203+
204+
function eulerTotient(n) {
205+
const seq = [];
206+
for (let i = 1; i <= n; i++) {
207+
let count = 0;
208+
for (let j = 1; j <= i; j++) {
209+
if (gcd(i, j) === 1) count++;
210+
}
211+
seq.push(count);
212+
}
213+
return seq;
214+
}
215+
216+
function binomial(n, k) {
217+
if (k < 0 || k > n) return 0;
218+
let result = 1;
219+
for (let i = 1; i <= k; i++) {
220+
result = result * (n - i + 1) / i;
134221
}
135222
return result;
136223
}
137224

225+
function bell(n) {
226+
if (n <= 0) return [];
227+
const seq = [1];
228+
for (let i = 1; i < n; i++) {
229+
let prev = seq[i-1];
230+
let sum = 0;
231+
for (let j = 0; j < i; j++) {
232+
sum += binomial(i-1, j) * seq[j];
233+
}
234+
seq.push(sum);
235+
}
236+
return seq;
237+
}
238+
239+
function lucas(n) {
240+
if (n <= 0) return [];
241+
if (n === 1) return [2];
242+
const seq = [2, 1];
243+
for (let i = 2; i < n; i++) {
244+
seq.push(seq[i-1] + seq[i-2]);
245+
}
246+
return seq;
247+
}
248+
249+
function tribonacci(n) { //n-bonacci
250+
if (n <= 0) return [];
251+
if (n === 1) return [0];
252+
if (n === 2) return [0, 1];
253+
const seq = [0, 1, 1];
254+
for (let i = 3; i < n; i++) {
255+
seq.push(seq[i-1] + seq[i-2] + seq[i-3]);
256+
}
257+
return seq;
258+
}
259+
260+
function pell(n) {
261+
if (n <= 0) return [];
262+
if (n === 1) return [0];
263+
const seq = [0, 1];
264+
for (let i = 2; i < n; i++) {
265+
seq.push(2 * seq[i-1] + seq[i-2]);
266+
}
267+
return seq;
268+
}
269+
270+
function golomb(n) {
271+
if (n <= 0) return [];
272+
const seq = [1, 2, 2];
273+
for (let i = 3; i < n; i++) {
274+
let count = 0;
275+
for (let j = 0; j < seq[i-1]; j++) {
276+
count++;
277+
}
278+
seq.push(count);
279+
}
280+
return seq;
281+
}
282+
283+
function stirlingSecond(n, k) {
284+
if (k === 0 || k > n) return 0;
285+
if (k === 1 || k === n) return 1;
286+
const dp = Array.from({length: n+1}, () => Array(k+1).fill(0));
287+
for (let i = 1; i <= n; i++) {
288+
for (let j = 1; j <= Math.min(i, k); j++) {
289+
if (j === 1 || j === i) {
290+
dp[i][j] = 1;
291+
} else {
292+
dp[i][j] = j * dp[i-1][j] + dp[i-1][j-1];
293+
}
294+
}
295+
}
296+
return dp[n][k];
297+
}
298+
299+
function collatz(n) {
300+
if (n <= 0) return [];
301+
const seq = [n];
302+
while (n !== 1) {
303+
if (n % 2 === 0) { n = n / 2; }
304+
else { n = (3 * n + 1); } // /2
305+
seq.push(n);
306+
}
307+
return seq;
308+
}
309+
310+
function perfectNumbers(limit) {
311+
const seq = [];
312+
for (let n = 2; n <= limit; n++) {
313+
let sum = 1;
314+
for (let i = 2; i * i <= n; i++) {
315+
if (n % i === 0) {
316+
sum += i;
317+
if (i !== n / i) sum += n / i;
318+
}
319+
}
320+
if (sum === n && n > 1) seq.push(n);
321+
}
322+
return seq;
323+
}
324+
325+
function armstrongNumbers(limit) {
326+
const seq = [];
327+
for (let n = 0; n <= limit; n++) {
328+
const str = String(n);
329+
const len = str.length;
330+
let sum = 0;
331+
for (const digit of str) {
332+
sum += Math.pow(parseInt(digit), len);
333+
}
334+
if (sum === n) seq.push(n);
335+
}
336+
return seq;
337+
}
338+
138339
function btn(minusKey, plusKey) {
139340
let value = 0;
140341
const minusBtn = document.getElementById(minusKey) || document.querySelector(`[data-key="${minusKey}"]`);
@@ -199,7 +400,6 @@ <h2>📝 Editor</h2>
199400
if (Math.abs(ln_t) < 1e-10) return 0;
200401
return 1 / ln_t;
201402
};
202-
203403
for (let i = 0; i <= n; i++) {
204404
const t = a + i * h;
205405
const val = f(t);

0 commit comments

Comments
 (0)