How do you design a rand7 function

视觉特征-自监督-同源不同crop视图一致性【2021-04】:DINOv1【全局裁剪(覆盖原图较大区域)➜教师;全局&局部(覆盖原图较小区域)裁剪➜学生】【EMA学生来构建教师】【中心化&锐化】 在本文中,我们探讨 自 监督学习是否为 Vision Transformer (ViT) [19] 提供了区别于卷积 网 络(convnets)的新特性。除了将自监督方法适配到该架构后效果尤为出色这一事实之外,我们还提出以下观察:首先,自监督ViT特征包含有关图像语义分割的显式信息,而这种信息在有监督ViT和convnets中均不会如此清晰地出现。其次,这些特征也是出色的 k-NN 分类器,使用小型 ViT 在 ImageNet 上达到78.3%的top-1准确率。 阅读详情

How do you design a rand7 function using a rand5 function?

My solution is:

def rand7():
     
     n = rand5() + rand5() + rand5() + rand5() + rand5() + rand5() + rand5() + rand5()
     return n%8

Firstly, is the correct? Second, either way provide additional ways of accomplishing this. Thanks!

Update: 10000000 simulations resulted in the following results

0  had count  1250972  Chance:  12.50972%
1  had count  1251284  Chance:  12.51284%
2  had count  1248768  Chance:  12.48768%
3  had count  1251610  Chance:  12.5161%
4  had count  1250475  Chance:  12.50475%
5  had count  1249196  Chance:  12.49196%
6  had count  1249427  Chance:  12.49427%
7  had count  1248268  Chance:  12.48268%
5 Answers
Gayle Laakmann McDowell 
Gayle Laakmann McDowell, Author of Cracking the Coding Interview
Rand7 is supposed to turn one of 7 numbers (0 through 6 OR 1 through 7). Rand5 returns one of 5 numbers. For my explanation, I've assumed that rand7 returns 0 through 6.

There is no deterministic way of doing this [see explanation below]. By "deterministic" we mean that there is no way of doing this such that you can GUARANTEE that the program will return within X calls to rand. So, no, your solution does not work since it is deterministic.

How can you solve it? You'll have to do it with a loop that could, theoretically, loop for a very long time.

Here's one simple way:
  1. Call rand5 until you get a number between 0 and 3 (that is, anything but 4). Set b0 (bit 0) to that number % 2. So b0 is 0 if rand5 was 0 or 2, and 1 otherwise.
  2. Do the same for bit 1 and bit 2.
  3. We now have a 3 bit number -- which will be a number between 0 and 7.
  4. If that number is a 7, start over. Else, return.

In other words, we're doing this:
int rand2() {
    int x = rand5();
    if x == 4 return rand2(); // restart
    else return x % 2;
}

int rand7() {
     int x = rand2() * 4 + rand2() * 2 + rand2();
     if (x == 7) return rand7(); // restart
     else return x;
}


Why there's no deterministic solution
Suppose there were a deterministic way of doing this. This means that you are guaranteeing me that within X calls  max to rand5, you can randomly generate a number between 0 and 6 with  equal probability.

Wonderful. Okay.

Observe that:
  1. If you run the rand7 program twice, and you get the same results both times for each rand5 call, you'll get the same result for the rand7 program.
  2. Some "paths" through the program might call rand5 fewer than X times. However, for the purposes we can treat this as still calling rand5 X times, where it just doesn't use those results.

So, now, we basically have a rand7 program that calls rand5  exactly X times. The results of those calls will determine what the value for rand7.

You can treat the sequence of results for rand5 as a string if you'd like. So, 013 means to get a 0 on the first call, then a 1, then a 3.

How many strings could you make? Well, X slots. 5 possibilities for each slot. So, there are 5^X slots.

Following me so far? Excellent!

Now then. I'd like you to divide those 5^X strings into 7  equal buckets.

What, you can't do that? Because 7 doesn't go into 5^X equally?

Oh. 

Guess your deterministic rand7 program isn't so equally random after all.
视觉特征-自监督-掩码特征预测【2023-01】:I-JEPA【单上下文块编码器取可见特征;窄预测器接特征和多个目标块位置标记在特征空间算L2损失;目标编码器由上下文权重指数移动平均更新】 Abstract摘要本文展示了一种无需依赖手工设计的数据增强即可学习高度语义化图像表示的方法。我们提出了基于图像的联合 Embedding 预测架构(Imagebased Joint-Embedding Predictive Architecture,I-JEPA),这是一种用于从图像进行自监督学习的非生成式方法。I-JEPA背后的理念很简单:从单个上下文块中,预测同一图像中多个目标块的表示。引导I-JEPA生成语义表示的核心设计选择是掩码策略; 阅读详情

相关推荐

视觉特征-自监督-掩码特征预测【2024-04】:V-JEPA【潜空间】【≈90%多块时空掩码】【上下文目标块预测】【特征空间预测≠像素重建】【EMA目标编码器+停梯度】

Adrien Bardes 1,2,3, Quentin Garrido 1,4, Jean Ponce 3,5,6, Xinlei Chen 1, Michael Rabbat 1, Yann LeCun 1,5,6, Mahmoud Assran 1,†, Nicolas Ballas 1,† 1 FAIR at Meta, 2 Inria, 3 École normale supérieure, CNRS, PSL Research University, 4 Univ. Gustave Eiffel

u013250861的博客 244

Design Pattern(7)-Composite Pattern

适用场景组合模式适用于树形结构。试想一个公司的所有员工,肯定有上下级关系,除了最底层的员工,其他员工都有自己的领导和自己管理的员工。Composite Pattern通过让每个非最底层员工持有自己的直接下属,从而实现这种树形结构。 因为公司的每个员工都具有一些共性,所以为他们设计一个公共父类或者接口,譬如Component或者叫Employee。但是最低层员工和非最底层员工有一些区别,因为最底层员

wind_dt博客 535

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 397

LintCode 1496: Implement Rand10() Using Rand7() (随机数生成好题)

1496.ImplementRand10()UsingRand7() Givenafunctionrand7whichgeneratesauniformrandomintegerintherange1to7,writeafunctionrand10whichgeneratesauniformrandomintegerintherange1to10. DoNOTusesystem'sMath.random(). E...

roufoo的博客 357

【信息科学与工程学】【数据科学】数据科学领域——第三篇 数学08 几何学00总篇

编号英文名称中文名称简要说明/归属1Foundations of Geometry几何基础公理化方法, Hilbert《几何基础》2Euclidean Geometry (Synthetic)欧几里得几何(综合法)《几何原本》传统3Analytic Geometry解析几何坐标方法, Descartes, Fermat4Plane Geometry平面几何三角形、圆、共点共线等经典问题5Solid Geometry立体几何三维空间中的图形与度量6Non-Euclidean Geometry非欧几何平行公设不

weixin_49199313的博客 193

MATLAB项目,模拟曲柄滑块机构的运动学和动力学.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

InternVLA‑A1.5:统一理解、潜在预见与动作,实现组合泛化

前面已经知道,一段视频经过 时空块嵌入(Tubelet Embedding) 之后,会从原始的视频帧转换成一个三维 时空 Token 网格(Spatio-temporal Token Grid)。例如 V-JEPA 中典型的输入:[16,224,224,3][16,224,224,3][16,224,224,3]经过大小为:2×16×162\times16\times162×16×16的三维 Patch Embedding 后,会得到:[8,14,14,de][8,14,14,d_e][8,14,14,de

u013250861的博客 173

基于MATLAB的Abel反演和Fowler–Milne诊断研究对HyperFill TWGMAW-P进行了电波形分析。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

systemverilog FAQ(zz)

1. What is clocking block? Ans: Clocking block can be declared using the keywords clocking and endclocking. A clocking block is mainly used in the testbench in order to avoid race condi...

weixin_30588907的博客 273

aerosonde-fc-hybrid-uav-sim-main.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

YOLO26算法左侧目标识别+训练好的模型+504张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[未获取()] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 83 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9950** mAP50-95 | 0.9950 Precision | 0.9989 Recall | 1.0000 train/box_loss | 0.2388 train/cls_loss | 0.1435 val/box_loss | 0.1671 val/cls_loss | 0.1126 【训练过程分析】 自从开始这次 YOLO26 算法训练以来,我始终盯着那条 loss 曲线,就像盯着一个长跑运动员的冲刺曲线一样。最初几轮训练,loss 拉得很快,那段时间真的挺让人揪心的,生怕一不小心就错过了最好的时机。但到了中期,loss 曲线进入了漫长的平台期,就像马拉松中的长距离赛段,大家都保持着匀速前进。到了后期,loss 平稳下降,mAP50 和 mAP50-95 两个指标都稳定在了 0.9950,这个阶段就像是冲刺阶段,每一次的训练都能感受到模型在平稳而坚定地进步。在训练到第 83 轮时,所有的 loss 指标都趋于稳定,这意味着模型已经在我们的训练数据上收敛得很好。但在这整个过程中,我还是感受到了一些挑战,尤其是在平台期的那几轮,看着曲线徘徊不前,那种焦虑和不确定感真的磨得人没脾气。不过,最后的曲线走势还是让我们松了... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

生成模型(四):扩散模型02【第一单元:扩散模型简介】

欢迎来到 Hugging Face 扩散模型课程第一单元!在本单元中,你将学习有关扩散模型如何工作的基础知识,以及如何使用 🤗 diffusers 库。扩散模型是「生成模型」算法家族的新成员通过学习给定的训练样本,生成模型可以学会如何生成数据,比如生成图片或者声音。一个好的生成模型能生成一组样式不同的输出。这些输出会与训练数据相似,但不是一模一样的副本。扩散模型如何实现这一点?为了便于说明,让我们先看看图像生成的案例。

u013250861的博客 4320

ACS6116 - 高级控制模块的任务集。该任务重点是模拟和控制猎鹰9号火箭着陆,采用受限和不受约束的MPC技术。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

微积分导读:从圆周率到导数与积分

……

u013669912的博客 1400

【通信测试自动化】基于可执行上下文的接口测试生成:通信行业高复杂度API质量保障方案设计

内容概要:本文探讨了接口测试自动化在通信行业的演进路径,从传统确定性脚本向“可执行上下文”驱动的智能化测试转型。面对接口数量激增、迭代周期缩短和测试数据复杂性的挑战,文章提出“可执行上下文”概念,强调测试成功不仅依赖API规范,还需融合真实测试数据、调用链依赖、业务断言逻辑和隐性规则。通过Skills拆解、RAG注入和Agentic编排三大核心技巧,构建结构化上下文资产,实现AI辅助生成高可执行性测试用例,并引入自愈断言机制提升测试鲁棒性。最终指出未来趋势是“治理下的自治”,即在保障安全与合规的前提下,推进自动化向多步骤工作流和语义感知扩展。; 适合人群:具备一定软件测试或自动化开发经验,从事通信行业系统测试、质量保障或接口自动化平台建设的研发与测试人员,尤其是关注AI在测试中应用的工程师和技术管理者。; 使用场景及目标:①解决通信系统中接口测试因数据不真实、依赖复杂导致的用例失效问题;②利用RAG与Skills方法提升AI生成测试用例的准确性与可审计性;③通过自愈断言和上下文复用增强测试稳定性与维护效率;④构建面向5G、O-RAN、BSS等复杂系统的可持续演进的自动化测试体系。; 阅读建议:此资源以工程实践为导向,结合代码示例深入剖析上下文驱动的测试生成机制,建议读者结合自身系统特点,重点借鉴上下文资产积累与RAG规则注入的方法,并在可控环境中试点Agentic测试与自愈断言,逐步实现从脚本自动化到上下文智能的跃迁。

增强型PID-自适应-前馈-神经网络控制研究(Matlab代码实现)

内容概要:本文系统研究了“增强型PID-自适应-前馈-神经网络控制”复合控制策略,结合Matlab代码与Simulink仿真模型,深入探讨了传统PID控制与智能控制算法的深度融合方法。该策略通过引入自适应机制和前馈补偿,结合BP神经网络进行非线性系统建模与参数优化,并融合扩展卡尔曼滤波(EKF)等状态估计技术,提升控制系统在复杂动态环境下的响应速度、鲁棒性和控制精度。研究涵盖双闭环控制架构设计、神经网络训练流程、EKF状态融合等关键技术环节,适用于电机控制、电力电子变换器、无人机、微电网等高阶非线性系统的建模与仿真。配套资源丰富,包含多个可复现的Simulink模型、Matlab代码及参考文献,尤其支持高水平EI期刊成果的复现与验证。; 适合人群:具备自动控制理论基础和Matlab/Simulink仿真能力,从事控制工程、电气自动化、电力电子或智能系统研发的研究生、科研人员及工作1-3年以上的工程技术人员; 使用场景及目标:①深入研究先进PID控制策略在非线性系统中的优化应用;②实现神经网络与经典控制算法的协同设计与联合仿真;③开展状态估计、参数辨识与智能控制策略的实验验证;④复现并拓展高水平学术论文中的控制方法,支撑科研创新与项目开发; 阅读建议:建议结合提供的Matlab代码与Simulink仿真模型进行实践操作,重点剖析控制结构设计逻辑、神经网络训练过程及EKF状态估计的实现细节,按照文档说明逐步调试与优化,以全面掌握复合控制系统的建模、仿真与性能评估方法。

【数据库技术】MySQL事务ACID与隔离级别解析:InnoDB与MyISAM存储引擎对比及适用场景设计

内容概要:本文系统讲解MySQL事务与存储引擎的核心知识点,重点围绕事务的ACID特性、并发问题与隔离级别(包括脏读、不可重复读、幻读)、MySQL默认的可重复读(RR)隔离级别如何通过MVCC和间隙锁避免幻读,以及InnoDB与MyISAM存储引擎在事务支持、锁机制、外键、全文索引等方面的对比。同时介绍了MEMORY存储引擎的特点及其适用场景,并结合实际面试高频问题进行深入剖析,帮助读者全面掌握MySQL在事务处理和存储引擎选择方面的关键技术细节。; 适合人群:准备后端开发面试、或希望深入理解MySQL核心机制的开发者,尤其是有一定数据库基础、工作1-3年的研发人员。; 使用场景及目标:①理解事务四大特性(ACID)的底层实现原理,如undo log、redo log、MVCC等;②掌握不同隔离级别之间的区别及MySQL默认RR级别的特殊性;③能够根据业务需求合理选择InnoDB与MyISAM存储引擎;④应对MySQL相关技术面试中的高频问题。; 阅读建议:此资料兼具理论深度与实战指导价值,建议结合MySQL官方文档和实际环境动手验证事务行为与锁机制表现,尤其关注RR级别下快照读与当前读的行为差异,以及行锁失效场景的模拟,以加深理解和记忆。

【带状电容器计算用于电容式触摸传感器应用】半数值模型的电容式触摸传感器集成于金属基材涂层中研究(Matlab代码实现)

内容概要:本文针对集成于金属基材涂层中的电容式触摸传感器,提出了一种用于带状电容器电容计算的半数值模型,并基于Matlab平台实现了仿真分析。该模型结合解析方法与数值计算,采用有限差分法求解二维泊松方程,精确模拟传感器在金属背景下的电场分布,有效克服了金属基底对电容信号的屏蔽与干扰问题,显著提升了触摸检测的灵敏度与稳定性。研究系统探讨了传感器的几何结构、介电层材料特性、电极尺寸及间距等关键参数对电容响应的影响机制,建立了完整的建模流程与仿真框架,为高性能、高抗干扰能力的电容式触控器件在智能家居、工业控制面板及复杂电磁环境下的实际应用提供了理论支撑与技术路径。; 适合人群:具备电磁场与电磁波、数值计算方法基础,熟悉Matlab编程,从事传感器设计、人机交互技术开发、电子器件仿真及相关领域研究的科研人员、工程师及研究生。; 使用场景及目标:①面向金属表面集成的电容式触摸传感器进行高精度建模与性能优化;②为智能家电、工业设备等人机接口的触控模块提供抗干扰设计与仿真验证方案;③支撑相关科研课题的理论分析、算法开发与原型系统验证。; 阅读建议:学习者应结合提供的Matlab代码深入理解半数值建模的具体实现过程,重点掌握有限差分法在电场求解中的应用技巧,并可通过调整传感器结构参数与材料属性开展对比仿真,进而探究各因素对灵敏度的影响规律,全面提升对电容式传感机制的理解与工程化设计能力。

上一篇: red black tree
下一篇: start redid-server with config
screaming
博客等级 码龄19年 60粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值