抽奖规则,每 100 楼抽 1 箱,上限 4 箱每箱 5 斤,加微信群满 200 人再抽两箱 10 斤的。算法如下,如果大家有更公平的算法请细说
//直接浏览器 console 可出结果大家都一样
// 使用 Web Crypto API 进行 SHA-256 哈希
async function hashSHA256(input) {
const encoder = new TextEncoder();
const data = encoder.encode(input);
const buffer = await crypto.subtle.digest('SHA-256', data);
const hashArray = Array.from(new Uint8Array(buffer));
const hashedString = hashArray.map(byte => byte.toString(16).padStart(2, '0')).join('');
return hashedString;
}
// 对数据 a 进行 SHA-256 哈希,取 b 个两个 hash 转成 10 进制
async function customAlgorithm(a, b) {
// 对数据 a 进行 SHA-256 哈希
const hashedA = await hashSHA256(a);
// 计算每多少位取两位数
const segmentSize = Math.floor(hashedA.length / b);
// 初始化数组以存储分段结果
const hashSegments = [];
// 根据计算的 segmentSize 进行分段
for (let i = 0; i < hashedA.length && hashSegments.length < b; i += segmentSize) {
const segment = hashedA.substr(i, 2);
hashSegments.push(segment);
}
// 补足不足 b 个结果的情况,可以根据实际需求进行调整
while (hashSegments.length < b) {
hashSegments.push(hashedA.substr(i, 2));
i += 2; // 每次取两位
}
// 把两数数字转换为 10 进制输出
const result = hashSegments.map(segment => parseInt(segment, 16));
return result;
}
// 示例抽奖
const a = '3033.12'; //今天的上证指数收盘价
const b = 2; // 每 100 楼抽一位
await customAlgorithm(a, b)
// 补充说明:如果输出结果大于楼层数则去掉最高位,比如 223 楼层不存在则中奖用户为 23 楼
家里种的不多大约精品果在 2000 斤,果商收购价在 2.6 左右。往年都是我表哥卖给他们厂里人了所有不用我卖。今年我表哥卖他老丈家人的了,我家这一点我爸让我看看能不能网上卖了,因为是跟华农同县所以价格比华农家便宜 10%,想吃的可以加加群领卷下单。
ps 甜度不用担心,今年我们县的都甜。现摘现发没有清洗打腊,只要老家不下雨一般下单第二天就发货。室温 20 度以内还是很耐放的两三个星期没啥问题。如果微信群加不上可以加和微信console.log(atob('enF3MjAwOA=='))
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.