/**
* Generates a Gray code sequence for the given number of bits.
* @param {number} n - The number of bits in the Gray code sequence.
* @returns {number[]} - An array of Gray codes in binary format.
* @description
* Gray codes are binary sequences in which two successive values differ in only one bit.
* This function generates a Gray code sequence of length 2^n for the given number of bits.
*
* The algorithm follows these steps:
*
* 1. Initialize an array `grayCodes` to store the Gray codes. Start with [0, 1] for n = 1.
* 2. Iterate from 1 to n:
* a. Calculate `highestBit` as 2^i, where `i` is the current iteration index.
* b. Iterate in reverse order through the existing Gray codes:
* - For each Gray code `code`, add `highestBit | code` to `grayCodes`.
* - This operation flips a single bit in each existing code, creating new codes.
* 3. Return the `grayCodes` array containing the Gray codes in decimal representation.
*
*resources: [GFG](https://www.geeksforgeeks.org/generate-n-bit-gray-codes/)
* @example
* const n = 3;
* const grayCodes = generateGrayCodes(n);
* // grayCodes will be [0, 1, 3, 2, 6, 7, 5, 4] for n=3.
*/
function generateGrayCodes(n) {
if (n <= 0) {
return [0]
}
const grayCodes = [0, 1]
for (let i = 1; i < n; i++) {
const highestBit = 1 << i
for (let j = grayCodes.length - 1; j >= 0; j--) {
grayCodes.push(highestBit | grayCodes[j])
}
}
return grayCodes
}
export { generateGrayCodes }
没有合适的资源?快使用搜索试试~ 我知道了~
javascript-Bit-Manipulation.rar
共18个文件
js:18个
需积分: 1 0 下载量 34 浏览量
2024-09-15
09:51:56
上传
评论
收藏 7KB RAR 举报
温馨提示
javascript-Bit-Manipulation.rar
资源推荐
资源详情
资源评论
收起资源包目录
Bit-Manipulation.rar (18个子文件)
Bit-Manipulation
GenerateSubSets.js 1001B
LogTwo.js 302B
BinaryCountSetBits.js 664B
UniqueElementInAnArray.js 406B
IsPowerofFour.js 693B
test
IsPowerOfTwo.test.js 611B
LogTwo.test.js 162B
BinaryCountSetBits.test.js 988B
UniqueElementInAnArray.test.js 314B
GenerateSubSets.test.js 851B
SetBit.test.js 457B
IsPowerOfFour.test.js 321B
GrayCodes.test.js 516B
NextPowerOfTwo.test.js 433B
IsPowerOfTwo.js 933B
SetBit.js 874B
GrayCodes.js 1KB
NextPowerOfTwo.js 345B
共 18 条
- 1
资源评论
蜡笔小流
- 粉丝: 1726
- 资源: 983
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- A股上市公司企业创新能力、质量、效率-原始数据+dofile+结果(2006-2023年).txt
- 《标准管理系统》Vue+三大框架:三层架构、SSM、Vue
- python提取合成b站电脑缓存视频
- java基于ssm+vue花卉库存管理系统源码 带毕业论文+PPT
- java基于ssm+vue实验室预约管理系统源码 带毕业论文+PPT
- 梦幻西游道人j240918
- ruo-yi-vue-kms-backup-master
- STM32F407ZGT6 最小系统原理图
- java基于ssm+jsp大学生成果登记系统源码
- 下面我将展示如何基于 Python 进行一个大模型训练前的特征检查 该案例包括特征的统计分析、可视化以及预处理等步骤
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功