V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wbrobot  ›  全部回复第 10 页 / 共 40 页
回复总数  790
1 ... 6  7  8  9  10  11  12  13  14  15 ... 40  
2024 年 9 月 7 日
回复了 iqoo 创建的主题 程序员 分享一个空间利用率超高的 Base36 算法
php 是最好的语言

<?php

define('BASE36_ENCODE_TABLE_DEFAULT', array_merge(range('0', '9'), range('a', 'z')));
define('BASE36_DECODE_TABLE_DEFAULT', array_fill(0, 256, 0) + array_combine(range(ord('0'), ord('9')), range(0, 9)) + array_combine(range(ord('a'), ord('z')), range(10, 35)));

function base36_encode_block($plain, $encode_table) {
$lo = 0;
$hi = $plain[8];
for ($i = 0; $i < 8; $i++) {
$lo |= ($plain[$i] << ($i * 8));
}

$D = 36 * 36;
$remainder = $hi * (PHP_INT_MAX % $D + 1) + ($lo % $D);

$code = [];
for ($i = 0; $i < 2; $i++) {
$code[$i] = $encode_table[$remainder % 36];
$remainder = intdiv($remainder, 36);
}

$quotient = $hi * (PHP_INT_MAX / $D) + intdiv($lo, $D) + $remainder;
for ($i = 2; $i < 14; $i++) {
$code[$i] = $encode_table[$quotient % 36];
$quotient = intdiv($quotient, 36);
}

return $code;
}

function base36_decode_block($code, $decode_table) {
$lo = 0;
$hi = 0;

for ($i = 11; $i >= 0; $i--) {
$lo = $lo * 36 + $decode_table[$code[$i]];
}
for ($i = 13; $i >= 12; $i--) {
$hi = $hi * 36 + $decode_table[$code[$i]];
}

$plain = [];
$plain[0] = $lo;

$value = $hi * 18509302102818816 + intdiv($lo, 256);
for ($i = 1; $i < 9; $i++) {
$plain[$i] = ($value >> (($i - 1) * 8)) & 0xFF;
}

return $plain;
}

function base36_encode_last_block($plain, $len, $encode_table) {
$plain_tmp = array_merge(array_fill(0, 9, 0), $plain);
$code = base36_encode_block($plain_tmp, $encode_table);
$code[13] = $encode_table[27 + $len];

return $code;
}

function base36_decode_last_block($code, $decode_table) {
$flag = $decode_table[$code[13]];

if ($flag >= 28) {
$code_tmp = array_slice($code, 0, 13);
$plain_tmp = base36_decode_block($code_tmp, $decode_table);

$len = $flag - 27;
if ($len > 8) {
$len = 8;
}
return array_slice($plain_tmp, 0, $len);
}

return base36_decode_block($code, $decode_table);
}

function base36_encode($plain, $encode_table) {
$code = [];
$len = count($plain);
$src = 0;
$dst = 0;

while ($len >= 9) {
$code_part = base36_encode_block(array_slice($plain, $src, 9), $encode_table);
array_splice($code, $dst, 14, $code_part);
$src += 9;
$dst += 14;
$len -= 9;
}

if ($len > 0) {
$code_part = base36_encode_last_block(array_slice($plain, $src, $len), $len, $encode_table);
array_splice($code, $dst, 14, $code_part);
$dst += 14;
}

return array_slice($code, 0, $dst);
}

function base36_decode($code, $decode_table) {
$plain = [];
$len = count($code);

if ($len <= 0) {
return $plain;
}

$src_last = $len - 14;
$src = 0;
$dst = 0;

while ($src < $src_last) {
$plain_part = base36_decode_block(array_slice($code, $src, 14), $decode_table);
array_splice($plain, $dst, 9, $plain_part);
$src += 14;
$dst += 9;
}
$plain_part = base36_decode_last_block(array_slice($code, $src, 14), $decode_table);
array_splice($plain, $dst, count($plain_part), $plain_part);

return $plain;
}

// Example usage
$plain = array_fill(0, 9, 1);
$encoded = base36_encode($plain, BASE36_ENCODE_TABLE_DEFAULT);
$decoded = base36_decode($encoded, BASE36_DECODE_TABLE_DEFAULT);

print_r($encoded);
print_r($decoded);

?>
2024 年 9 月 7 日
回复了 laters 创建的主题 问与答 头皮痒,什么洗发水止痒去头皮屑的比较好用
硫磺皂试试
补充一下:也就是我不采购你科技含量高的东西,比如电动车,我只买你衬衫,不就回到世纪出,中国只是低价代工厂的时候吗?
油车又不是不能开,我欧美就保持油车(其余类似)
还有,你中落后能保护起来补贴追赶,我欧美为何不能这样做?
看了一楼和三楼的,还是不太理解:
1 ,印美元=无形,购商品/服务=有形。以无形换有形,不是对美元收割更有利吗?
2 ,设现状不变的情况下,米国提高高科技价格或者限制,行政或者军事手段把控原材料,利用老中低价卷,采购商品或服务,不就形成了收割吗?
2024 年 9 月 3 日
回复了 37Y37 创建的主题 分享发现 分享我的照片备份方案,无 NAS,简单可靠
@Blanke #22 不但是私密,我有几张朋友穿肉色瑜伽服紧身的相片,全部被和谐了。
2024 年 9 月 2 日
回复了 lucasj 创建的主题 程序员 推荐一个屏蔽涩图的插件
很早以前见过这个项目,穆斯林老哥必备。
但是有一个 bug ,因为是 js 的,所以都是先显示,再模糊。
我前几年想过做个收费的,直接把图片 proxy ,可以收费,但是后来发现没有太好的实现方案,遂放弃。
2024 年 8 月 16 日
回复了 nathandoge 创建的主题 iDev 超过 5 万美金的个人开发者怎么弄的?
根据我的经验,派安盈这种,提现国内卡,是直接给你打的人民币,不占用汇额度,不过收款渠道有严格限制,你可以开个户实验一下。
2024 年 8 月 13 日
回复了 liuxh7 创建的主题 旅行 最近刚拿下护照想去泰国走走,有没有什么地方推荐?
泰国政府由于旅游不景气,最近批准了赌博合法,加上几年前的大的麻合法,还有更早之前的涩情产业,真正做到了黄赌毒俱全。
真去的话,别乱吃小蛋糕,抽烟之类的,免得含有违禁品,回来检测阳性
2024 年 8 月 9 日
回复了 joker2026 创建的主题 问与答 百度网盘 vip 当成图片服务器
2024 年 8 月 6 日
回复了 Inzufu 创建的主题 程序员 大家是怎么对自用的服务做鉴权的
@wbrobot 我的一个站 https://9898555.com 就是用前端浏览器指纹当 uuid ,弱绑定用户
2024 年 8 月 6 日
回复了 Inzufu 创建的主题 程序员 大家是怎么对自用的服务做鉴权的
直接前端生成个浏览器指纹当 uuid ,设置个 password 就行了。
2024 年 8 月 5 日
回复了 ab 创建的主题 问与答 cf 一个奇怪的问题请教
既然 via 了,自己修改一下 UA ,再做做实验。
2024 年 8 月 5 日
回复了 xiaohupro 创建的主题 随想 记录一下第一次见 V 友后续
指出个错误:深度烘焙的咖啡豆是苦,浅烘才是酸。
“不带毒的版本” = “没有恶意 URL 明文的版本”
“带去派出所”这种无关痛痒的惩罚,还不如打一顿。
已经十岁了,这种带去派出所,却什么都没发生的“结果”,很有可能会给她一种“就算去派出所,警察也只是说说而已”的错觉。
让后面更加肆无忌惮。
要是我孩子,我会教育她:
1 ,偷是错的,打一顿。
2 ,偷被摄像头拍到,不专业,打一顿。
3 ,想要为什么不先问爸妈要,打一顿。

打一顿长个记性,人不可能不犯错,如果要犯错,尽量不要被抓。
2024 年 7 月 25 日
回复了 ldzhu1 创建的主题 程序员 Coze 试用订阅流程存在缺陷,大家谨慎试用付费订阅
@zsc8917zsc 中国信用卡支付好像看密码不看 cvv
1 ... 6  7  8  9  10  11  12  13  14  15 ... 40  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2909 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 41ms · UTC 15:01 · PVG 23:01 · LAX 08:01 · JFK 11:01
♥ Do have faith in what you're doing.