Skip to content

Instantly share code, notes, and snippets.

@18520339
Last active February 18, 2024 02:41
Show Gist options
  • Save 18520339/a6843aa82b32f6517f5af67cdc985bde to your computer and use it in GitHub Desktop.
Save 18520339/a6843aa82b32f6517f5af67cdc985bde to your computer and use it in GitHub Desktop.
My study notes
#include <iostream>
#include <math.h>
using namespace std;
bool is_prime(int n) {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 == 0 || n % 3 == 0) return false;
for (int i = 5; i * i <= n; i += 6)
if (n % i == 0 || n % (i + 2) == 0) return false;
return true;
}
bool is_fibo(int n) {
int n1 = n * n * 5 - 4;
int n2 = n * n * 5 + 4;
float sqrt1 = sqrt(n1);
float sqrt2 = sqrt(n2);
return (int)sqrt1 == sqrt1 || (int)sqrt2 == sqrt2;
}
int get_fibo(int n) {
double phi = (1 + sqrt(5)) / 2;
return round(pow(phi, n) / sqrt(5));
}
// SAKAMOTO ALGORITHM to checks what day of the week it is
int day_of_week(int year, int month, int day) {
int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
year -= month < 3;
return (497 * year/400 + t[month - 1] + day) % 7;
}
function getWebName(url) {
// http://example1.com/a/b?c=d => example1
// http://www.example2.com/b?c=d => example2
// https://ww.example3.com.vn => example3
const hostnameParts = new URL(url).hostname.split('.');
return hostnameParts[hostnameParts.length - 1].length === 2
? hostnameParts[hostnameParts.length - 3]
: hostnameParts[hostnameParts.length - 2];
}
// Check even and odd without `if else`
number = 3
["even", "odd"][number % 2]
// Get intersection
const a = new Set([1,2,3]);
const b = new Set([4,3,2]);
const intersection = [...a].filter(x => b.has(x))
console.log(intersection) // [2, 3]
function getCookieField(name) {
const cookie = document.cookie.split("; ").find(item => item.startsWith(`${name}=`));
return cookie ? decodeURIComponent(cookie.split("=")[1]) : null;
}
(265 >>> 0).toString(2);
(_$=($,_=[]+[])=>$?_$($>>+!![],($&+!![])+_):_)(265);
/*
Đây ko phải là RegEx mà là hàm mũi tên (arrow function) với các tên hàm, tên biến và số (1) được thể hiện bằng các kí tự đặc biệt và sô 1 được thể hiện bằng biểu thức mảng như này +!![]
Đây là phiên bản dễ hiểu hơn một chút của đoạn mã:
(toBinary = (val, str = "") => val ? toBinary(val >> 1, (val & 1) + str):str)(265);
[]+[] chính là chuỗi trống "".
+!![] chính là số 1.
Dùng đệ quy để lấy từng bit và cộng dồn vào chuỗi str (ban đầu là trống ""). Điều kiện dừng là val bằng 0 (đoạn toán tử 2 ngôi chỗ val?... đấy).
Viết cho dễ nhìn và chú thích:
(
toBinary = (val, str = "") => // gán toBinary cho hàm mũi tên với 2 tham số val và str (mặc định là "").
val ? // nếu val khác 0...
toBinary(val >> 1, (val & 1) + str) : // ... thì thực hiện đệ quy cho bit tiếp theo
str // ...ngược lại kết thúc đệ quy và trả về giá trị
)(265); // gọi trực tiếp hàm toBinary
*/
@18520339
Copy link
Author

18520339 commented Sep 28, 2023

Deep reinforcement learning

image image
image image
rl_formalism.mp4
In the standard “agent-environment loop” formalism, an agent interacts with the environment in discrete time-steps t=0,1,2,... At each $t$, the agent uses a policy $\pi$ to select an action $A_t$ based on its observation of the environment's state $S_t$. The agent receives a numerical reward $R_t$ and on the next time step, moves to a new state $S_{t+1}$.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment