恶臭数字论证器 -- 简化版

恶臭数字论证器

  如果不知道恶臭数字论证器是什么的,具体情况可以参考这个网站:恶臭数字论证器

  现在我们要做的就是手写一个跟这个差不多的恶臭数字论证器。

原理

  众所周知,一个数字 x x x 可以拆成每一个数位上的数字 x 0 , x 2 , x 3 , ⋯   , x n x0, x2, x3, \cdots, x_n x0,x2,x3,,xn,具体举个例子,就是 123 123 123 可以拆成 1 , 2 , 3 1, 2, 3 1,2,3。并且我们可以很轻松的用 { x i } \{x_i\} {xi} 这个数列表示出 x x x 这个数,也就是:

x = ∑ i = 0 n x i 1 0 i x = \sum_{i = 0}^n x_i10^i x=i=0nxi10i

  这里观察一下,我们发现一下性质,也就是 x i ≤ 9 x_i \leq 9 xi9,非常的显然,所以如果我们把 1 ∼ 9 1 \sim 9 19 的数字全部都用 114514 114514 114514 表示出来的话,那么任意数字小于 1 e 10 1e10 1e10 的数字就可以恶臭的论证了。

代码

#include<bits/stdc++.h>
using namespace std;
#define in read()

inline int read(){
	int x = 0; char c = getchar();
	while(c < '0' or c > '9') c = getchar();
	while('0' <= c and c <= '9')
		x = x * 10 + c - '0', c = getchar();
	return x;
}

int num = 0;
map<int, string> m;

int main(){
	m[0] = "(1 - 1) * 4514";
	m[1] = "11 / (45 - 1) * 4";
	m[2] = "-11 + 4 - 5 + 14";
	m[3] = "11 * (-4) + 51 - 4";
	m[4] = "-11 - 4 + 5 + 14";
	m[5] = "11 - 4 * 5 + 14";
	m[6] = "1 - 14 + 5 + 14";
	m[7] = "11 - 4 + 5 - 1 - 4";
	m[8] = "11 - 4 + 5 / 1 - 4";
	m[9] = "11 - 4 + 5 + 1 - 4";
	m[10] = "-11 / 4 + 51 / 4";
	while(1){
		num = in;
		if(num <= 10) { cout << m[num] << '\n'; continue; }
		int d = num % 10; num /= 10;
		string ans = m[d];
		int k = 0;
		while(num){
			k++;
			d = num % 10; num /= 10;
			if(d == 0) continue;
			ans += " + ((" + m[d] + ")" + " * " + "(" + m[10] + ")" + " ^ " + "(" + m[k] + ")" + ")";
		}
		cout << ans << '\n';
	}
	return 0;
} 

后记

  这个玩意儿功能还不是很齐全,比如不能表示小数,不能表示比 1 e 10 1e10 1e10 更大的数之类的,所以才叫简化版嘛,看这玩意儿也就图一乐。

  最后,114514(喜。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
CDC(Change Data Capture)是一种数据同步技术,可以实现增量更新数据的同步。在MySQL中,可以使用MySQL自带的binlog日志来实现CDC。 binlog日志是MySQL记录数据库操作的日志,包括插入、更新、删除等操作。通过解析binlog日志,可以获取到数据库的增量更新数据,从而实现数据同步。 以下是使用MySQL binlog实现CDC的步骤: 1. 开启binlog日志 在MySQL配置文件中,开启binlog日志。可以通过修改my.cnf文件或在MySQL控制台执行以下语句: ``` set global log_bin=on; ``` 2. 配置binlog格式 MySQL支持三种binlog格式:STATEMENT、ROW和MIXED。为了实现更精确的CDC,建议选择ROW格式。 可以通过修改my.cnf文件或在MySQL控制台执行以下语句: ``` set global binlog_format=row; ``` 3. 配置binlog日志位置 在进行CDC时,需要指定要同步的binlog日志的位置。可以通过执行以下语句查看当前binlog日志的位置: ``` show master status; ``` 输出结果类似于: ``` +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 107 | | | +------------------+----------+--------------+------------------+ ``` 其中File表示当前使用的binlog文件名,Position表示当前binlog的位置。记录下这两个值,后面会用到。 4. 解析binlog日志 使用第三方工具(如Canal)或自行开发程序解析binlog日志,并将解析后的数据同步到目标数据库中。 可以根据需要,对解析后的数据进行过滤、转换等操作,以实现更精细化的数据同步。 总之,使用MySQL binlog日志实现CDC,可以实现增量更新数据的同步,是一种常用的数据同步技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值