工具函数-算法
1. 实现四舍五入,保留两位小数
const v = 0.0635455;
// 方式1,保留2位小数,返回的是number格式
const formatted = Math.round(v * 100) / 100;
// 方式2,保留2位小数,返回的是字符串格式
const formatted = v.toFixed(2);
在使用浮点数运算时,有时会出现无限循环的情况,这是由于浮点数在转换成二进制的时候就会出现。将浮点数转换为二进制形式的过程如下:
-
将整数部分转换为二进制:
- 将整数部分除以 2,记录余数,直到商变为 0。余数倒序排列即为整数部分的二进制形式。
-
将小数部分转换为二进制:
- 将小数部分乘以 2,取整数部分作为二进制位,小数部分继续乘以 2,直到小数部分为 0 或达到所需的精度。
举例:一个典型的例子就是 0.1 这个值,将 0.1 转换为二进制的过程如下:
- 小数部分 0.1 乘以 2:
- 0.1 × 2 = 0.2 (取整数部分 0)
- 小数部分 0.2 乘以 2:
- 0.2 × 2 = 0.4 (取整数部分 0)
- 小数部分 0.4 乘以 2:
- 0.4 × 2 = 0.8 (取整数部分 0)
- 小数部分 0.8 乘以 2:
- 0.8 × 2 = 1.6 (取整数部分 1)
重复这个过程,我们会发现小数部分会产生一个无限循环的二进制序列。
因此尽量不要直接将对浮点数的运算结果直接展示出来。
2. 随机数算法
生成一个固定范围的随机数:min + (max-min)*Math.random()
生成一个随机排列 [1, 2, 3, 4].sort((a, b) => return Math.random() - 0.5)
快速取整:<< 0和 >> 0都是取整,是js里性能最快的取整,不管正负数都是去掉小数部分;和Math.floor、Math.ceil、Math.round不一样。
例如: 1.23 >> 0 -> 1 -2.59 << 0 -> -2
3. 轮播图取值
取值逻辑 fix: i => ((i % length) + length) % length
这个函数的作用是修正给定的索引 i,使其始终处于 0 到 length-1 的范围内。这对于轮播组件非常有用,因为当用户点击上一个或下一个按钮时,索引可能会超出 0 到 length-1 的范围。
这个函数的实现原理如下:
-
i % length: 这个操作可以将i限制在0到length-1的范围内。但是,如果i为负数,这个操作会返回一个负数。 -
(i % length) + length: 这个操作可以确保结果始终为非负数。如果i为负数,i % length会返回一个负数,但加上length后会变成一个正数。 -
((i % length) + length) % length: 这个最后的取模操作可以确保结果在0到length-1的范围内。即使(i % length) + length的结果大于length,取模操作也会将其缩减到0到length-1的范围内。
总之,这个 fix 函数可以确保无论 i 的值是多少,它都会被修正为 0 到 length-1 之间的一个合法索引。这对于轮播组件的实现非常重要,可以确保组件的行为是可预测的,无论用户的操作如何。
相关文章:
工具函数-算法
1. 实现四舍五入,保留两位小数 const v 0.0635455; // 方式1,保留2位小数,返回的是number格式 const formatted Math.round(v * 100) / 100; // 方式2,保留2位小数,返回的是字符串格式 const formatted v.toFixed(…...
C# yolov8 OpenVINO 同步、异步接口视频推理
C# yolov8 OpenVINO 同步、异步接口视频推理 目录 效果 项目 代码 下载 效果 同步推理效果 异步推理效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading; using System.Windows.Form…...
【STM32入门学习】定时器与PWM的LED控制
目录 一、定时器与PWM介绍 1.1定时器 1.1.1定时器分类简介 1.1.2STM32定时器分类比较表 1.1.3定时器启动操作: 1.2 PWM 1.2.1 简介: 1.2.2PWM工作原理 1.2.3使用步骤: 二、定时器计数控制LED灯亮灭 2.1HAL库 2.1.1使用HAL库创建…...
PyTorch实战:模型训练中的特征图可视化技巧
1.特征图可视化,这种方法是最简单,输入一张照片,然后把网络中间某层的输出的特征图按通道作为图片进行可视化展示即可。 2.特征图可视化代码如下: def featuremap_visual(feature, out_dirNone, # 特征图保存路径文件save_feat…...
有人@你!神工坊知识问答第二期中奖名单新鲜出炉
六月作为伟大的物理学家—麦克斯韦的诞辰月 神工坊特别推出 “ 辨 ‘麦克斯韦妖’,赢百元好礼” 夏日知识问答主题活动 活动一经推出 反响热烈 第二期中奖名单公布! 中奖的伙伴们速来兑奖! 听说还有同学没有参与? 活动最后…...
数据结构篇:旋转操作在AVL树中的实现过程
本节课在线学习视频(网盘地址,保存后即可免费观看): https://pan.quark.cn/s/06d5ed47e33b AVL树是平衡二叉搜索树的一种,它通过旋转操作来保持树的平衡。AVL树的特点是,任何节点的两个子树的高度最大差别…...
为什么Java默认使用UTF-16,Golang默认使用UTF-8呢?
Java 和 Go 语言在默认字符编码上做出了不同的选择,这是由它们的设计目标和使用场景决定的。下面是对 Java 默认使用 UTF-16 和 Go 默认使用 UTF-8 的原因进行的详细解释。 Java 默认使用 UTF-16 的原因 1. 历史背景和兼容性 Unicode 的发展: Java 诞生于 1995 年…...
JavaScript常见面试题(三)
文章目录 1.对原型、原型链的理解2.原型修改、重写3.原型链指向4.对闭包的理解5. 对作用域、作用域链的理解6.对执行上下文的理解7.对this对象的理解8. call() 和 apply() 的区别?9.异步编程的实现方式?10.setTimeout、Promise、Async/Await 的区别11.对…...
【Effective Modern C++】第1章 型别推导
【Effective Modern C】第1章 型别推导 文章目录 【Effective Modern C】第1章 型别推导条款1:理解模板型别推导基础概念模板型别推导的三种情况情景一 ParamType 是一个指针或者引用,但非通用引用情景二 ParamType是一个通过引用情景三 ParamType既不是…...
服装连锁实体店bC一体化运营方案
一、引言 随着互联网的快速发展和消费者购物习惯的变化,传统服装连锁实体店在面对新的市场环境下亟需转型升级。BC(Business to Consumer)一体化运营方案的实施将成为提升服装连锁实体店竞争力和顾客体验的关键举掖。商淘云详细介绍服装连锁…...
IDEA中SpringMVC的运行环境问题
文章目录 一、IEAD 清理缓存二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 一、IEAD 清理缓存 springMVC 运行时存在一些之前运行过的缓存导致项目不能运行,可以试试清理缓存 二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 以下…...
Python初体验
# Java基础知识学的差不多了,项目上又没什么事,学学py,方便以后对接 1、打包flask应用(好痛苦,在什么平台打包就只在那个平台可用想在linux用只能参考方法2了) pyinstaller --onefile app.py -n myapp 2…...
从零开始如何学习人工智能?
说说我自己的情况:我接触AI的时候,是在研一。那个时候AlphaGo战胜围棋世界冠军李世石是大新闻,人工智能第一次出现我面前,当时就想搞清楚背后的原理以及这些技术有什么作用。 就开始找资料,看视频。随着了解的深入&am…...
【仿真建模-anylogic】动态生成ConveyorCustomStation
Author:赵志乾 Date:2024-06-18 Declaration:All Right Reserved!!! 0. 背景 直接使用Anylogic组件开发的模型无法动态改变运输网布局;目前需求是要将运输网布局配置化;运输网配置化…...
如何使用idea连接Oracle数据库?
idea版本:2021.3.3 Oracle版本:10.2.0.1.0(在虚拟机Windows sever 2003 远程连接数据库) 数据库管理系统:PLSQL Developer 在idea里面找到database,在idea侧面 选择左上角加号,新建ÿ…...
谈谈kafaka的并行处理,顺带讲讲rabbitmq
简介 Kafka 是一个分布式流处理平台,它支持高效的并行处理。Kafka 的并行处理能力主要体现在以下几个方面: 分区(Partition)并行 Kafka 将数据存储在称为"分区"的逻辑单元中。每个分区可以独立地并行地进行读写操作。生产者可以根据分区策略,将数据写入到指定的分…...
P3056 [USACO12NOV] Clumsy Cows S
[USACO12NOV] Clumsy Cows S 题目描述 Bessie the cow is trying to type a balanced string of parentheses into her new laptop, but she is sufficiently clumsy (due to her large hooves) that she keeps mis-typing characters. Please help her by computing the min…...
智赢选品,OZON数据分析选品利器丨萌啦OZON数据
在电商行业的激烈竞争中,如何快速准确地把握市场动态、洞察消费者需求、实现精准选品,是每个电商卖家都面临的挑战。而在这个数据驱动的时代,一款强大的数据分析工具无疑是电商卖家们的得力助手。今天,我们就来聊聊这样一款选品利…...
Canal自定义客户端
一、背景 在Canal推送数据变更信息至MQ(消息队列)时,我们遇到了特定问题,尤其是当消息体的大小超过了MQ所允许的最大限制。这种限制导致数据推送过程受阻,需要相应的调整或处理。 二、解决方法 采用Canal自定义客户…...
20240621将需要自启动的部分放到RK3588平台的Buildroot系统的rcS文件中
20240621将需要自启动的部分放到RK3588平台的Buildroot系统的rcS文件中 2024/6/21 17:15 开发板:飞凌OK3588-C SDK:Rockchip原厂的Buildroot 缘起:在凌OK3588-C的LINUX R4系统启动的时候,需要拉高GPIO4_B5、GPIO3_B7和GPIO3_D0。…...
KV缓存优化在语音大模型中的挑战与AudioKV解决方案
1. KV缓存管理在大型语言模型中的核心挑战在Transformer架构的大型语言模型(LLM)推理过程中,KV(Key-Value)缓存技术通过存储历史注意力键值对来避免重复计算,这项优化使得自回归生成的计算复杂度从O(n)降低…...
别再搞混了!改进DH与标准DH参数在IRB1200建模中的关键差异与选择
别再搞混了!改进DH与标准DH参数在IRB1200建模中的关键差异与选择 当你在为ABB IRB1200这类六轴工业机器人构建运动学模型时,是否曾被两种不同的DH参数表示法困扰?标准DH(Denavit-Hartenberg)和改进DH(Modif…...
深入解析dlsym的RTLD_NEXT:从符号查找到全局介入的实战指南
1. 揭开RTLD_NEXT的神秘面纱:符号查找的"接力赛" 第一次在代码里看到dlsym(RTLD_NEXT, "printf")这种写法时,我盯着屏幕发了五分钟呆——这行代码就像Linux系统中的魔法咒语,明明每个字母都认识,组合起来却让…...
QQ音乐加密文件解密终极指南:qmcdump工具完全使用教程
QQ音乐加密文件解密终极指南:qmcdump工具完全使用教程 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否…...
Zotero中文文献管理终极指南:三步彻底解决知网PDF元数据抓取难题
Zotero中文文献管理终极指南:三步彻底解决知网PDF元数据抓取难题 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 你是…...
2026免费照片去水印软件App排行榜,手机电脑去水印哪款好用?实测推荐
2026免费照片去水印软件App排行榜,手机电脑去水印哪款好用?实测推荐 图片上的水印去不掉,一直是不少人的痛点。从社交平台保存下来的图片带着平台Logo,下载的素材图带有版权标识,或者照片里不小心拍到广告文字——这些…...
问卷设计对比实测:手工瞎编≠通用 AI≠学术专用!虎贲等考 AI 重新定义可发表级问卷
在毕业论文、课程论文、期刊实证研究中,问卷是决定数据是否有效、模型能否跑通、论文能否过关的核心一环。但 90% 的学生都在用错误方式做问卷:手工凭感觉出题、网上随便抄量表、用通用 AI 随意生成…… 结果要么信效度不达标,要么数据无法分…...
Instill Core:一站式AI应用构建平台,从数据处理到模型部署全流程实战
1. 项目概述:一站式AI应用构建平台如果你正在为如何将一堆杂乱无章的文档、图片、音频视频数据,转化为可供AI模型直接“食用”的格式而头疼,或者厌倦了在模型部署、API编排和数据处理工具之间反复横跳,那么Instill Core的出现&…...
HDFS源码(二)
DataNode启动源码 创建HttpServer 初始化DataNode Rpc服务 获取NameNode Rpc代理 Datanode向NameNode注册 DataNode与NameNode周期心跳及block块汇报 数据上传源码 创建文件系统及初始化DFSClient 连接NN创建目录 启动DataStreamer线程 向dataQueue队列中写入packet 设置副本写…...
可解释AI评估指南:从原型纯度到TCAV分数的量化度量体系
1. 项目概述:为什么我们需要量化评估可解释AI?在人工智能,尤其是深度学习模型日益渗透到医疗诊断、自动驾驶、金融风控等关键领域的今天,一个核心的信任危机始终悬而未决:我们如何相信一个“黑箱”模型做出的决策&…...
