Giter Site home page Giter Site logo

bilibililottery's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bilibililottery's Issues

Unit项目开源

感觉内容很多,光是开源代码也不一定学得会,Up打算啥时候整个教程什么的?
现在想想,别说画板,设计电路,以及后面的系统搭建和nlp;
光是最简单的焊电路我都没信心能焊好,但还是有很多朋友想和我一起跟进这个项目把它复现一遍,感觉能学到不少东西。

对于 ZHIHUI 算法的概率存有一些疑惑

ZHIHUI 这个算法的思路实在是太有趣了,但在分析后我有一些疑虑

当然由于 2 的 256 次方是一个巨大的数字,有很大概率是会出现没有任何一个用户的奖券号码跟开奖号码是一致的,所以我会在所有的参与抽奖用户里面,选取彩票券与这个数字最接近的一个用户,作为获奖者送出奖品

1. 看似随机,但每个用户的中奖概率是不等的

已求出用户 A (35040733) 和 B (20259914) 的 UID Hash 分别为

787ccebcc8a084b1df6994047be31706ebebb520ba0ce53dc44ec49c24eadcbb
4b3ec795e99f163d022978866fb89110b9e74c1d1aa5932f074e441d115d4cda

再把 Hash 的 16 进制编码转换为 10 进制分别为

54498057715370390290478912473173450895822179519350824269452220845244860259515
34034385650919512184593039349216595979306765265358617344517855224905181514970

将 16 进制转换为 10 进制的代码是这样的

int('787ccebcc8a084b1df6994047be31706ebebb520ba0ce53dc44ec49c24eadcbb', 16)
int('4b3ec795e99f163d022978866fb89110b9e74c1d1aa5932f074e441d115d4cda', 16)

SHA 256 的范围为从 [0, ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff],总共有 115792089237316195423570985008687907853269984665640564039457584007913129639935 种可能性,从中求用户 A 和 B 的差值的一半 abs(a - b) / 2 结果为

10231836032225439052942936561978427458257707126996103462467182810169839372273

通过以上结果对 A 和 B 分别进行加减后的中奖范围如下

[44266221683144951237535975911195023437564472392354720806985038035075020887242, 115792089237316195423570985008687907853269984665640564039457584007913129639935]
[0, 44266221683144951237535975911195023437564472392354720806985038035075020887243]

用户 A 的中奖结果有 71525867554171244186035009097492884415705512273285843232472545972838108752693 种,而用户 B 的中奖结果有 44266221683144951237535975911195023437564472392354720806985038035075020887243 种。通过比较 A 和 B 的中奖范围可以发现 A 比 B 中奖的结果多出 27259645871026292948499033186297860978141039880931122425487507937763087865450

2. 如果最后获奖 Hash 与两个用户的 Hash 距离相等,或者距离为单数无法等分,应该如何解决这种情况?

递归或许能够解决,就像 Bogosort 也有可能是一万年

🐶 🐶 🐶

斗胆为这个程序做个小注释

先获得一个和动态唯一相关的id号,即Dynamic_id

然后调用GetUsers函数,将该动态下所有作为一级评论员的用户信息抓取下来
其中调用了GetTotalRepost函数,对用户的数量先做一个初步规模获取,即得到count的数量
又调用了GetMiddleStr函数,相当于一个定位函数,配合着在条件允许范围内的commentindex找到对应位置用户所发的信息
然后对json包进行解包工作,摘出各项子信息
然后常规地将用户信息塞入list返回

utils中封装了二分搜索,可能是预先为了按照某种条件来筛选获奖用户
但是最后直接计算幸运值并排序可能是更直接与方便的选择便被弃用了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.