Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Greatest Common Divisor
- const gcd = (x, y) => x ? gcd(y % x, x) : y
- // Lowest Common Multiple
- const lcm = (x, y) => x * y / gcd(x, y)
- // Modulo
- const mod = (n, d) => (n % d + d) % d
- inline int modinverse(int a, int m) {
- int x;
- for(a%=m,x=1;x<m;++x)
- if (a*x%m==1)
- return x;
- }
- // Permutations
- const P=(m,n)=>!n||m--*P(m,--n)
- // Combinations
- const C=(m,n)=>n<=m&&P(m,n)/P(n,n)
- // Factorial
- const f = n => !n || n * f(--n)
- const ƒ=ǃ=>!ǃ||ǃ--*ƒ(ǃ)
- const F=n=>P(n,n)
- (function(ǃ) { return !ǃ||ǃ*arguments.callee(~-ǃ) })(5)
- // PowerSet
- const ps = A => A.reduceRight((a, i) => [...a,...a.map(j => [...j,i])], [[]]);
- map = ([h,...t],i) => !!h ?[...h,i,...map(t,i)] : []
- rps = ([h,...t]) => !!h ? [...rps(t), ...rps(t).map(i => [...i,h])] : [[]]
- 𝒫=(Ꮪ)=>(λ=(ʔ,ℓ)=>ʔ--?[[...((ʙ=ǃ=>ǃ?ʙ(ǃ>>!!ǃ)+[ǃ&!!ǃ]:[])(ʔ)+'').padStart(ℓ,'0')].reduce((Σ,ε,δ)=>+ε?[...Σ,Ꮪ[δ]]:Σ,[]), ...λ(ʔ,ℓ)]:[])(!!λ<<(ℓ=Ꮪ.length),ℓ)
- //make array of N elements and fill values 1..N
- ʃ=ǃ=>ǃ--?[...ʃ(ǃ),++ǃ]:[]
- //Alphabet
- String.fromCharCode(...ʃ(0xFF))
- //ꮅ (prime check)
- ꮅ=(ʔ,ǃ=~-ʔ)=>~-ʔ&&!~-ǃ||!!(ʔ%ǃ)&&ꮅ(ʔ,~-ǃ)
- SieveOfEratosthenes = N => ʃ(N).reduce((a,i) => ꮅ(i) ? [...a, i] : a, [])
- //Prime Factors
- pf = (n,f,i=f?~-n:2,A=[]) => f ? ~-n && !~-i || !!(n%i) && pf(n,1,~-i) : !~-n ? A : !(n%i) && pf(i,1) ? (A=[...A,i], pf(n/i,0,i,A)) : pf(n,0,-~i,A)
- //Fibonacci
- fib = n => n && ~-n && fib(--n)+fib(--n) || n
- fib = n => ~-n<-n ? -n : fib(--n)+fib(--n)
- // Fib BF
- // >++++++++++>+>+[
- // [+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[
- // [-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-
- // [>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>
- // ]<<<
- // ]
- //Digitsum
- Σ=(ε,δ=10)=>ε&&Σ(ε/δ)+~~ε%δ
- //Sum
- Σ = ([α,...n]) => !!α &&α +Σ(n)
- Σ=([ǃ,...λ])=>!!ǃ&&ǃ+Σ(λ)
- Σ=([ǃ,...ʔ],ː)=>ː?~~ʔ?Σ([ʔ^ǃ,(ʔ&ǃ)<<!!ǃ],ǃ):ǃ:!!ǃ&&Σ([ǃ,Σ(ʔ)],ǃ)
- //Bin
- b=n=>n?b(n>>!!n)+[n&!!n]:[]
- //strrev
- strrev = ([h,...t]) => h?[...strrev(t),h]:[]
- // [0,1,2,...,100] -> [0,-1,1,-2,2,...-99,99] -> [0,1,2...,100]
- [...Array(100).keys()].map(n=>((n >> 1) ^ (-(n & 1)))).map(m=>(m << 1) ^ (m >> 31))
- arousal 0 ... 100
- valence -99 ... 99
- 2**53 = 9007199254740992 = 9007199254740992 + 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement