当前位置: 首页 > news >正文

牛客网刷题 | BC126 小乐乐查找数字

😁博客主页😁:🚀从0至1-CSDN博客🚀
🤑博客内容🤑:🍭C语言、C++、数据结构、嵌入式、Linux🍭
😎本文内容🤣:🍭BC126 小乐乐查找数字🍭
😎金句分享😎:🍭NO🍭

目录

目录

描述

输入描述:

输出描述:

示例

解题思路 

理解输入和输出

设计算法

代码

更多代码 

课后拓展 

拓展1: 支持更大的数组

解题思路

拓展2: 统计多个目标数字

解题思路

实现代码

拓展3: 处理负数

解题思路

实现代码 

拓展4: 使用哈希表

解题思路

实现代码 

拓展5: 图形化展示

解题思路

实现代码


描述

给定n个整数和一个整数x,小乐乐想从n个整数中判断x出现几次,请编程帮他实现。

输入描述:

共3行
第一行,一个整数,表示n(1 <= n <= 100)。
第二行,共输入n个整数,两个整数之间用空格分隔。
第三行,输入一个整数,表示要查找的整数x。

输出描述:

一行,表示整数x出现的次数。

示例


解题思路 

理解输入和输出

  • 输入:
    • 数组长度 a
    • 数组元素(共 a 个)。
    • 目标数字 b
  • 输出:
    • 目标数字 b 在数组中出现的次数。

设计算法

  1. 读取数组长度:
    • 使用 scanf 函数读取用户输入的数组长度 a
  2. 读取数组元素:
    • 使用一个 for 循环从用户那里读取 a 个整数,并将它们存储在数组 arr 中。
  3. 读取目标数字:
    • 使用 scanf 函数读取用户输入的目标数字 b
  4. 统计目标数字出现的次数:
    • 初始化计数器 count 为 0
    • 使用另一个 for 循环遍历数组 arr,如果当前元素等于目标数字 b,则增加 count 的值。
  5. 输出结果:
    • 使用 printf 函数输出目标数字 b 在数组中出现的次数。

代码

#include <stdio.h>int main() 
{int a;int b = 0;int i;int count = 0; // 初始化 count 为 0int arr[100] = {0};scanf("%d", &a); // 输入数组长度for(i = 0; i < a; i++){scanf("%d", &arr[i]); // 输入数组元素}scanf("%d", &b); // 输入要查找的目标数字for(i = 0; i < a; i++){if(arr[i] == b){count++; // 统计目标数字出现的次数}}printf("%d\n", count); // 输出目标数字出现的次数return 0;
}/*-----------------------------------------------------------------*//*以下是加注释后的*/#include <stdio.h>int main() 
{int a;              // 声明变量 a 用于存储数组长度int b = 0;          // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;              // 声明变量 i 作为循环控制变量int count = 0;      // 声明变量 count 用于统计目标数字出现的次数,初始值为 0int arr[100] = {0}; // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素scanf("%d", &a);    // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &b);    // 输入要查找的目标数字并存储在变量 b 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == b) // 如果当前元素等于目标数字 b{count++;    // 增加 count 的值,统计目标数字出现的次数}}printf("%d\n", count); // 输出目标数字在数组中出现的次数return 0;             // 返回 0 表示程序成功结束
}
  1. 变量声明:

    int a;
    int b = 0;
    int i;
    int count = 0; // 初始化 count 为 0
    int arr[100] = {0};
    • a: 存储数组的长度。
    • b: 存储要查找的目标数字。
    • i: 循环控制变量。
    • count: 用于统计目标数字出现的次数,初始值为 0
    • arr[100]: 存储输入的数组元素,最大支持100个元素。
  2. 读取数组长度:

    scanf("%d", &a);
    • 用户输入数组的长度并存储在变量 a 中。
  3. 读取数组元素:

    for(i = 0; i < a; i++)
    {scanf("%d", &arr[i]);
    }
    • 使用 for 循环读取用户输入的数组元素,并存储在数组 arr 中。
  4. 读取目标数字:

    scanf("%d", &b);
    • 用户输入要查找的目标数字并存储在变量 b 中。
  5. 统计目标数字出现的次数:

    for(i = 0; i < a; i++)
    {if(arr[i] == b){count++;}
    }
    • 使用 for 循环遍历数组,如果当前元素等于目标数字 b,则增加 count 的值。
  6. 输出结果:

    printf("%d\n", count);
    • 输出目标数字在数组中出现的次数。

更多代码 

#include<stdio.h>
int main(){//桶排int arr[100]={0};//100个桶初始化为0int n=0;int temp=0;//桶的编号scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&temp);//获得桶编号arr[temp]++;//temp对应数的桶里,出现就自增,即为出现次数}int index=0;scanf("%d",&index);printf("%d",arr[index]);return 0;
}
#include <stdio.h>int main() 
{int n = 0;          // 存储数组长度int input = 0;      // 存储当前输入的数组元素int x = 0;          // 存储要查找的目标数字int count[1000] = {0}; // 用于统计每个数字出现的次数,最多支持1000个不同的数字scanf("%d", &n);    // 输入数组长度// 使用 while 循环读取数组元素,并统计每个数字出现的次数while (n--) {scanf("%d", &input); // 读取当前数组元素count[input]++;      // 增加对应数字的计数}scanf("%d", &x);    // 输入要查找的目标数字printf("%d\n", count[x]); // 输出目标数字在数组中出现的次数return 0;
}
  1. 变量声明:

    int n = 0;          // 存储数组长度
    int input = 0;      // 存储当前输入的数组元素
    int x = 0;          // 存储要查找的目标数字
    int count[1000] = {0}; // 用于统计每个数字出现的次数,最多支持1000个不同的数字
  2. 读取数组长度:

    scanf("%d", &n);    // 输入数组长度
  3. 读取数组元素并统计次数:

    while (n--) {scanf("%d", &input); // 读取当前数组元素count[input]++;      // 增加对应数字的计数
    }
    • 使用 while 循环读取数组元素,并将每个数字的出现次数存储在 count 数组中。
  4. 读取目标数字:

    scanf("%d", &x);    // 输入要查找的目标数字
  5. 输出结果:

    printf("%d\n", count[x]); // 输出目标数字在数组中出现的次数
    • 输出目标数字 x 在数组中出现的次数。

课后拓展 

拓展1: 支持更大的数组

当前代码支持的最大数组长度为100。如果我们需要处理更大的数组,可以通过动态内存分配来实现。

解题思路

  1. 动态内存分配:

    • 使用 malloc 函数动态分配内存以存储数组元素。
    • 检查内存分配是否成功,如果失败则输出错误信息并退出程序。
  2. 读取数组元素:

    • 使用 for 循环从用户那里读取数组元素,并存储在动态分配的数组中。
  3. 统计目标数字出现的次数:

    • 初始化计数器 count 为 0
    • 使用 for 循环遍历数组,如果当前元素等于目标数字 b,则增加 count 的值。
  4. 输出结果:

    • 使用 printf 函数输出目标数字 b 在数组中出现的次数。
  5. 释放内存:

    • 使用 free 函数释放动态分配的内存,避免内存泄漏。
#include <stdio.h>
#include <stdlib.h>int main() 
{int a;              // 声明变量 a 用于存储数组长度int b = 0;          // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;int count = 0;      // 声明变量 count 用于统计目标数字出现的次数,初始值为 0int *arr;           // 声明指针 arr 用于动态分配数组scanf("%d", &a);    // 输入数组长度并存储在变量 a 中// 动态分配内存arr = (int *)malloc(a * sizeof(int));if (arr == NULL) {printf("Memory allocation failed\n"); // 内存分配失败时输出错误信息return 1;                             // 返回 1 表示程序异常结束}for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &b);    // 输入要查找的目标数字并存储在变量 b 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == b) // 如果当前元素等于目标数字 b{count++;    // 增加 count 的值,统计目标数字出现的次数}}printf("%d\n", count); // 输出目标数字在数组中出现的次数// 释放动态分配的内存free(arr);return 0;             // 返回 0 表示程序成功结束
}

拓展2: 统计多个目标数字

如果需要统计多个目标数字的出现次数,可以使用一个循环来多次读取目标数字并输出结果。

解题思路

  1. 读取数组长度和数组元素:

    • 使用 scanf 函数读取数组长度 a
    • 使用 for 循环从用户那里读取数组元素,并存储在数组 arr 中。
  2. 读取目标数字的数量:

    • 使用 scanf 函数读取要查找的目标数字的数量 num_targets
  3. 统计每个目标数字的出现次数:

    • 使用嵌套的 for 循环:
      • 外层循环遍历每个目标数字。
      • 内层循环遍历数组,统计目标数字出现的次数。
    • 使用 count 数组来存储每个目标数字的出现次数。
  4. 输出结果:

    • 对于每个目标数字,输出其在数组中出现的次数。

实现代码

#include <stdio.h>int main() 
{int a;              // 声明变量 a 用于存储数组长度int num_targets;    // 声明变量 num_targets 用于存储要查找的目标数字的数量int i, j;int count[1000] = {0}; // 声明数组 count 用于统计每个数字出现的次数,最多支持1000个不同的数字int arr[100];         // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素int targets[100];     // 声明数组 targets 用于存储要查找的目标数字scanf("%d", &a);    // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &num_targets); // 输入要查找的目标数字的数量for(j = 0; j < num_targets; j++) // 使用 for 循环读取每个目标数字{scanf("%d", &targets[j]); // 输入当前目标数字并存储在 targets[j] 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == targets[j]) // 如果当前元素等于目标数字 targets[j]{count[targets[j]]++; // 增加对应目标数字的计数}}printf("%d\n", count[targets[j]]); // 输出目标数字在数组中出现的次数}return 0;             // 返回 0 表示程序成功结束
}

拓展3: 处理负数

当前代码假设数组中的所有元素都是非负整数。如果需要处理负数,可以调整数组 count 的大小和索引方式。

解题思路

  1. 调整数组大小:

    • 使用更大的数组 count 来支持负数。
    • 定义一个偏移量 OFFSET,使得负数也能映射到数组的有效索引范围内。
  2. 读取数组长度和数组元素:

    • 使用 scanf 函数读取数组长度 a
    • 使用 for 循环从用户那里读取数组元素,并存储在数组 arr 中。
  3. 统计目标数字的出现次数:

    • 初始化计数器 count 为 0
    • 使用 for 循环遍历数组,如果当前元素等于目标数字 b,则增加 count[b + OFFSET] 的值。
  4. 输出结果:

    • 使用 printf 函数输出目标数字 b 在数组中出现的次数。
实现代码 
#include <stdio.h>#define MAX_NUM 1000
#define OFFSET 500int main() 
{int a;              // 声明变量 a 用于存储数组长度int b = 0;          // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;int count[2 * MAX_NUM + 1] = {0}; // 声明数组 count 用于统计每个数字出现的次数,支持 -MAX_NUM 到 MAX_NUMint arr[100];         // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素scanf("%d", &a);    // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &b);    // 输入要查找的目标数字并存储在变量 b 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == b) // 如果当前元素等于目标数字 b{count[b + OFFSET]++; // 增加对应目标数字的计数}}printf("%d\n", count[b + OFFSET]); // 输出目标数字在数组中出现的次数return 0;             // 返回 0 表示程序成功结束
}

拓展4: 使用哈希表

对于更大范围的数字或更高效的统计,可以使用哈希表(散列表)来存储和统计数字的出现次数。

解题思路

  1. 定义哈希表结构体:

    • 定义一个 HashNode 结构体,包含键、值和指向下一个节点的指针。
    • 定义一个大小固定的哈希表数组 hashTable
  2. 哈希函数:

    • 定义一个简单的哈希函数 hashFunction,将键映射到哈希表的索引位置。
  3. 插入和更新操作:

    • 定义 insert 函数,在哈希表中插入一个新的键值对。
    • 定义 increment 函数,增加指定键的值。
  4. 查询操作:

    • 定义 getCount 函数,获取指定键的值。
  5. 释放内存:

    • 定义 freeHashTable 函数,释放哈希表占用的内存。
  6. 读取数组长度和数组元素:

    • 使用 scanf 函数读取数组长度 a
    • 使用 for 循环从用户那里读取数组元素,并调用 increment 函数更新哈希表。
  7. 读取目标数字:

    • 使用 scanf 函数读取要查找的目标数字 b
  8. 输出结果:

    • 使用 getCount 函数获取目标数字 b 在数组中出现的次数,并使用 printf 函数输出结果。
  9. 释放哈希表内存:

    • 调用 freeHashTable 函数释放哈希表占用的内存。
实现代码 
#include <stdio.h>
#include <stdlib.h>#define HASH_SIZE 1000typedef struct HashNode {int key;int value;struct HashNode* next;
} HashNode;HashNode* hashTable[HASH_SIZE];unsigned int hashFunction(int key) {return abs(key) % HASH_SIZE; // 计算哈希值
}void insert(HashNode** table, int key) {unsigned int index = hashFunction(key);HashNode* newNode = (HashNode*)malloc(sizeof(HashNode));newNode->key = key;newNode->value = 1;newNode->next = table[index];table[index] = newNode;
}void increment(HashNode** table, int key) {unsigned int index = hashFunction(key);HashNode* current = table[index];while (current != NULL) {if (current->key == key) {current->value++;return;}current = current->next;}insert(table, key);
}int getCount(HashNode** table, int key) {unsigned int index = hashFunction(key);HashNode* current = table[index];while (current != NULL) {if (current->key == key) {return current->value;}current = current->next;}return 0;
}void freeHashTable(HashNode** table) {for (int i = 0; i < HASH_SIZE; i++) {HashNode* current = table[i];while (current != NULL) {HashNode* temp = current;current = current->next;free(temp);}}
}int main() 
{int a;              // 声明变量 a 用于存储数组长度int b = 0;          // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;int arr[100];         // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素scanf("%d", &a);    // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中increment(hashTable, arr[i]); // 增加对应数字的计数}scanf("%d", &b);    // 输入要查找的目标数字并存储在变量 b 中printf("%d\n", getCount(hashTable, b)); // 输出目标数字在数组中出现的次数freeHashTable(hashTable); // 释放哈希表占用的内存return 0;             // 返回 0 表示程序成功结束
}

拓展5: 图形化展示

如果希望以图形化的方式展示结果,可以使用简单的字符图形或调用图形库(如SDL、OpenGL等)。这里我们使用简单的字符图形来展示。

解题思路

  1. 读取数组长度和数组元素:

    • 使用 scanf 函数读取数组长度 a
    • 使用 for 循环从用户那里读取数组元素,并存储在数组 arr 中。
  2. 读取目标数字:

    • 使用 scanf 函数读取要查找的目标数字 b
  3. 统计目标数字的出现次数:

    • 初始化计数器 count 为 0
    • 使用 for 循环遍历数组,如果当前元素等于目标数字 b,则增加 count 的值。
  4. 输出结果:

    • 使用 printf 函数输出目标数字 b 在数组中出现的次数。
  5. 简单字符图形展示:

    • 使用 for 循环打印星号 * 来表示目标数字出现的次数。
实现代码
#include <stdio.h>int main() 
{int a;              // 声明变量 a 用于存储数组长度int b = 0;          // 声明变量 b 用于存储要查找的目标数字,初始值为 0int i;int count = 0;      // 声明变量 count 用于统计目标数字出现的次数,初始值为 0int arr[100];         // 声明数组 arr 用于存储输入的数组元素,最大支持 100 个元素scanf("%d", &a);    // 输入数组长度并存储在变量 a 中for(i = 0; i < a; i++) // 使用 for 循环读取数组元素{scanf("%d", &arr[i]); // 输入当前数组元素并存储在 arr[i] 中}scanf("%d", &b);    // 输入要查找的目标数字并存储在变量 b 中for(i = 0; i < a; i++) // 使用 for 循环遍历数组元素{if(arr[i] == b) // 如果当前元素等于目标数字 b{count++;    // 增加 count 的值,统计目标数字出现的次数}}printf("Number of occurrences of %d: %d\n", b, count); // 输出目标数字在数组中出现的次数// 简单字符图形展示printf("Occurrences:\n");for(i = 0; i < count; i++){printf("*"); // 打印星号表示一次出现}printf("\n");return 0;             // 返回 0 表示程序成功结束
}

相关文章:

牛客网刷题 | BC126 小乐乐查找数字

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;从0至1-CSDN博客&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;C语言、C、数据结构、嵌入式、Linux&#x1f36d; &#x1f60e;本文内容&#x1f923;&#xff1a;&#x1f36d;BC1…...

Node一、fs 模块、path 模块、端口号、 http 模块、

一、Node.js了解 Node.js是一个跨平台JavaScript运行环境&#xff0c;使开发者可以搭建服务器端的JavaScript应用程序。 概念&#xff1a;使用 Node.js 编写后端程序 / 支持前端工程化 ✓ 后端程序&#xff1a;提供接口和数据&#xff0c;网页资源等 ✓ 前端工程化 &#x…...

k8s service 配置AWS nlb load_balancing.cross_zone.enabled

在Kubernetes中配置NLB&#xff08;Network Load Balancer&#xff09;的跨区域负载均衡&#xff08;cross-zone load balancing&#xff09;&#xff0c;需要使用服务注解&#xff08;service annotations&#xff09;来实现。根据AWS官方文档&#xff0c;以下是配置NLB跨区域…...

[分布式即时通讯系统] 注册类完善

我们在qss里添加err_tip样式&#xff0c;根据不同的状态做字体显示 #err_tip[statenormal]{color: green; } #err_tip[stateerr]{color: red; } 接下来项目中添加global.h和global.cpp文件&#xff0c;global.h声明repolish函数&#xff0c;global.cpp用来定义这个函数。 .h…...

C#使用HttpWebRequest下载文件

public static bool HttpDownloadFile(string downloadUrl, string localPath, log4net.ILog log) { bool bFlagDownloadFile false; //log.Debug(“HttpDownloadFile–准备以HTTP的方式下载文件&#xff0c;url:[” downloadUrl “]本地文件&#xff1a;【” localPath “…...

CentOS7环境安装php

直接安装 yum -y install php CentOS7默认安装是php5&#xff0c;现在php已有8.3版本 先查看php -v 版本 如果是低版本&#xff0c;可以删除 yum remove php yum remove php-fpm yum remove php-common 一、添加REMI存储库 yum install epel-release yum install -y …...

【Excel学习记录】04-排序和筛选

1.排序 &#xff08;1&#xff09;简单排序 不建议选中某列后进行排序 可以选中一个单元格或者整个表格→开始→编辑→排序和筛选→升序/降序 &#xff08;2&#xff09;多条件排序 可以选中一个单元格或者整个表格→开始→编辑→排序和筛选→自定义排序→指定关键字、比较内…...

Python轻松获取抖音视频播放量

现在在gpt的加持下写一些简单的代码还是很容易的&#xff0c;效率高&#xff0c;但是要有一点基础&#xff0c;不然有时候发现不了问题&#xff0c;这些都需要经验积累和实战&#xff0c;最好能和工作结合起来&#xff0c;不然很快一段时间就忘的干干净净了&#xff0c;下面就是…...

恢复删除的文件:6个免费Windows电脑数据恢复软件

数据恢复软件可帮助您从众多存储设备中恢复损坏或删除的数据。您可以使用这些文件恢复软件来检索文件、文档、视频、图片等。这些应用程序支持多种标准文件格式&#xff0c;如 PNG、RTF、PDF、HTML、JPG、MP3 等。 经过超过 75 小时的研究&#xff0c;我分析了 25 最佳免费数据…...

Go的Gin比java的Springboot更加的开箱即用?

前言 隔壁组的云计算零零后女同事&#xff0c;后文简称 云女士 &#xff0c;非说 Go 的 Gin 框架比 Springboot 更加的开箱即用&#xff0c;我心想在 Java 里面 Springboot 已经打遍天下无敌手&#xff0c;这份底蕴岂是 Gin 能比。 但是云女士突出一个执拗&#xff0c;非我要…...

Java 中枚举的 toString 方法及其字段信息展示

在 Java 编程中&#xff0c;枚举&#xff08;enum&#xff09;是一种特殊的数据类型&#xff0c;用于定义一组固定的常量。枚举类型不仅限于简单的常量定义&#xff0c;还可以包含字段、方法以及构造函数&#xff0c;从而使其具备更强的表达能力。toString 方法是 Java 中所有对…...

Python数据分析(OpenCV视频处理)

处理视频我们引入的还是numpy 和 OpenCV 的包 引入方式如下&#xff1a; import numpy as np import cv2 我们使用OpenCV来加载本地视频&#xff0c;参数就是你视频的路径就可以 #加载视频 cap cv2.VideoCapture(./1.mp4) 下面我们进行读取视频 #读取视频 flag,frame cap.re…...

DocFlow票据AI自动化处理工具:出色的文档解析+抽取能力,提升企业文档数字化管理效能

目录 财务应付 金融信贷业务 近期&#xff0c;DocFlow票据自动化产品正式上线。DocFlow是一款票据AI自动化处理工具&#xff0c;支持不同版式单据智能分类扩展&#xff0c;可选功能插件配置流程&#xff0c;满足多样业务场景。 随着全球化与信息化进程&#xff0c;企业的文件…...

python编程Day15-UnitTest框架的介绍

框架 framework为了解决一类事情的功能集合 Unittest 框架 是 Python 自带的单元测试框架 自带的, 可以直接使用, 不需要单外安装 测试人员 用来做自动化测试, 作为自动化测试的执行框架, 即 管理和执行用例的 使用原因 能够组织多个用例去执行提供丰富的断言方法能够生成测试报…...

Linux——进程控制模拟shell

1.进程创建 我们在之前的文章中介绍过进程创建的方法&#xff0c;可以通过系统调用接口fork来创建新的进程。 fork在创建完新的子进程之后&#xff0c;返回值是一个pid&#xff0c;对于父进程返回子进程的pid&#xff0c;对于子进程返回0。fork函数后父子进程共享代码&#xff…...

OpenCV的图像矫正

一、原理 图像矫正的原理是透视变换&#xff0c;下面来介绍一下透视变换的概念。 透视变换&#xff08;Perspective Transform&#xff09;基于一个4对点的映射关系&#xff08;4个源点到4个目标点&#xff09;&#xff0c;通过这些点之间的映射&#xff0c;可以计算一个变换…...

基于php求职招聘系统设计

摘要 随着社会信息化时代的到来&#xff0c;如今人们社会的生活节奏普遍加快&#xff0c;人们对于工作效率的要求也越来越高&#xff0c;企业 举办招聘会耗时耗财&#xff0c;个人参加招聘会漫无目的寻找不到“方向”&#xff0c;网络搜索工作量目的性不强&#xff0c;信息量繁…...

并行口的基本概念

单片机的并行口结构包括多个并行I/O端口&#xff0c;用于与外部设备进行并行数据传输。这些端口能够直接读写外部存储器、显示设备、打印机等外设的数据&#xff0c;是单片机与外界交互的重要通道。在深入探讨之前&#xff0c;我们先简要了解下单片机的基本概念。 单片机&…...

(六)机器学习 - 正态数据分布

正态数据分布&#xff0c;也称为高斯分布&#xff08;Gaussian distribution&#xff09;&#xff0c;是一种在统计学中非常重要的概率分布。它描述了自然和社会科学中许多现象的分布情况&#xff0c;如人的身高、体重、智商等。正态分布的图形特征是中间高、两边低&#xff0c…...

电脑系统报错找不到d3dcompiler_47.dll怎么修复?怎么预防“d3dcompiler_47.dll”文件缺失?

“d3dcompiler_47.dll”文件缺失的修复与预防策略 在日常使用电脑软件&#xff0c;尤其是运行大型游戏或图形密集型应用时&#xff0c;我们可能会遇到一些令人困惑的系统报错。其中之一便是“找不到d3dcompiler_47.dll”的错误提示。这个错误不仅影响软件的正常运行&#xff0…...

Github 2024-12-12 Go开源项目日报Top10

根据Github Trendings的统计,今日(2024-12-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Go Ethereum: 以太坊Go语言官方实现 创建周期:3717 天开发语言:Go协议类型:GNU Lesser General Public License v3.0Star数量:4504…...

RIP协议

介绍 路由信息协议RIP&#xff08;Routing Information Protocol&#xff09;是基于距离矢量&#xff08;Distance-Vector&#xff09;算法的路由协议&#xff0c;它是一种较为简单的内部网关协议IGP&#xff08;Interior Gateway Protocol&#xff09;。它的主要功能是帮助路…...

vue-router查漏补缺

一、动态路由匹配 1.带参数的动态路由匹配 import User from ./User.vue// 这些都会传递给 createRouter const routes [// 动态字段以冒号开始{ path: /users/:efg, component: User }, ]这种方式的路由会匹配到/users/abc或者/users/123,路径参数用冒号:表示&#xff0c;并…...

使用Flink CDC实现 Oracle数据库数据同步的oracle配置操作

使用Flink CDC实现 Oracle数据库数据同步的oracle配置操作&#xff0c;包括开启日志归档和用户授权。 flink官方参考资料&#xff1a; https://nightlies.apache.org/flink/flink-cdc-docs-master/zh/docs/connectors/flink-sources/oracle-cdc/ 操作步骤&#xff1a; 1.启用…...

mqtt.js 客户端封装

mqtt.js 客户端封装 没封装前使用 const client mqtt.connect(ws://10.10.20.9:9001) onMounted(() > {const topicList []const channelCount 12for(let i 0; i < channelCount; i) {topicList.push(/test/sendImage${i 1})}client.on(connect, () > {console…...

www.aws.training网站的账户密码如何修改

www.aws.training网站的账户密码如何修改 参加aws考试后, 账号密码如何修改呢? 是不是找了好久都找不到. 右上角, 我的账户, 点击注销. 然后会跳到页面: 点击那个网址链接, 进入新的页面,点安全: 右上角: 更改密码. 按提示来就好....

使用Python实现高性能数据存储

在数据驱动的时代&#xff0c;处理和存储海量数据已成为关键需求。高性能数据存储不仅能够确保数据的快速读写&#xff0c;还能提升系统的整体性能。Python作为一种灵活且功能强大的编程语言&#xff0c;提供了多种高效的数据存储解决方案。本文将详细介绍如何使用Python实现高…...

[已解决]nvm安装node.js 报错 拒绝访问此应用无法在你电脑上运行

报错如下&#xff1a; 出错背景&#xff1a; 心血来潮把node删掉重新安装&#xff0c;想用nvm来进行管理node 出错原因&#xff1a; npm下载失败、下载不完整 不完整的npm展示&#xff1a; 出错根本原因&#xff1a; 可能因为镜像源或者网络波动&#xff0c;导致node下载…...

图文检索(36):Decomposing Semantic Shifts for Composed Image Retrieval

Decomposing Semantic Shifts for Composed Image Retrieval 摘要方法3.1 前期准备3.2 视觉语言表示3.3 降级过程3.4 升级过程3.5 训练和推理 结论 发布时间&#xff08;2024 AAAI&#xff09; 标题&#xff1a;分解语义转换以实现组合图像检索 摘要 语义转换网络 (SSN)&…...

批量计算(Batch Processing)

批量计算&#xff08;Batch Processing&#xff09;是一种数据处理方式&#xff0c;指的是将大量任务或数据分批次进行处理&#xff0c;而不是实时处理每一个任务。这种处理方式通常在任务之间没有依赖关系时使用&#xff0c;可以大大提高计算效率和资源利用率。批量计算广泛应…...

Linux yum-config-manager命令异常

错误信息 使用 yum-config-manager命令时错误信息如下 sudo yum-config-manager \ > --add-repo \ > https://download.docker.com/linux/centos/docker-ce.repo sudo: yum-config-manager: command not found 解决办法 第一步&#xff1a; sudo yum -y install yum-u…...

【C++】关联存储结构容器-set(集合)详解

目录 一、基本概念 二、内部实现 三、常用操作 3.1 构造函数 3.2 插入操作 3.3 删除操作 3.4 查找操作 3.5 访问元素 3.6 容量操作 3.7 交换操作 四、特性 五、应用场景 结语 一、基本概念 set是C标准模板库&#xff08;STL&#xff09;中的一种关联容器&#xf…...

如何利用SPSS软件进行多组间显著性检验以abcd显示

1.SPSS软件中进行多组间的显著性检验 要在SPSS软件中进行多组间的显著性检验&#xff0c;并以abcd显示结果&#xff0c;你可以按照以下步骤操作&#xff1a; 数据准备&#xff1a; 确保你的数据已经正确输入SPSS&#xff0c;其中每行代表一个观测值&#xff0c;包含至少两列&a…...

C++ 之计时函数总结

C 之计时函数总结 总结Windows下C开发时的计时实现 1. clock() #include <time.h>   //引入头文件void main() {clock_t start, end;start clock();fun(); //需计时的函数end clock(); float t_cfloat(end-start)/CLOCKS_PER_SEC;cout << "func cos…...

仿dota2渲染--shader常见贴图含义(直观展示)

Properties {[Header(Texture)]_MainTex ("RGB:颜色 A:透贴", 2D) "white"{}_NormTex ("RGB:法线贴图", 2D) "bump" {}_MaskTex ("R:高光强度 G:边缘光强度 B:高光染色 A:高光次幂…...

NoSQL大数据存储技术测试(5)MongoDB的原理和使用

单项选择题 第1题 关于 MongoDB 集群部署下面说法不正确的是&#xff08;&#xff09; 已经不使用主从复制的模式 在实际应用场景中&#xff0c; Mongodb 集群结合复制集和分片机制 MongoDB 支持自动分片&#xff0c; 不支持手动切分 &#xff08;我的答案&#xff09; 每…...

视图、转发与重定向、静态资源处理

目录 视图 默认视图 视图机制原理 自定义视图 请求转发与重定向 静态资源处理 视图 每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性 可以通过 order 属性指定解析器的优先顺序&#xff0c;order 越小优先级越高 默认是最低优先级&#xff0c;Integer.MAX_…...

ThinkPHP 5.1 的模板布局功能

ThinkPHP 5.1 的模板布局功能&#xff0c;包括全局配置、模板标签以及动态方法布局三种方式。以下是对这三种方式的要点概括和补充&#xff0c;以便于更好地理解和使用&#xff1a; 方式一&#xff1a;全局配置方式 适用于全站使用相同布局的情况&#xff0c;配置简单且统一。…...

入门网络安全工程师要学习哪些内容【2025年寒假最新学习计划】

&#x1f91f; 基于入门网络安全/黑客打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 大家都知道网络安全行业很火&#xff0c;这个行业因为国家政策趋势正在大力发展&#xff0c;大有可为!但很多人对网络安全工程师还是不了解&#xff0c;不知道网…...

Redis Cluster 分片机制

Redis 集群是 Redis 提供的一种分布式实现&#xff0c;用于水平扩展数据存储能力。通过 Redis 集群&#xff0c;可以将数据分片存储在多个 Redis 节点上&#xff0c;同时提供高可用性和故障转移功能。 分片&#xff08;Sharding&#xff09;&#xff1a; Redis 集群将数据划分…...

LightRAG测试BUG

错误一&#xff1a; LightRAG无法回答错误&#xff1a; INFO:lightrag:kw_prompt result:{{"high_level_keywords": ["xxx", "xxx"],"low_level_keywords": ["xxx", "xxx", "xxx"] }} JSON parsing e…...

关于手柄摇杆的连线

由于时间实在是太久远了&#xff0c;我也忘记具体的连线了&#xff0c;只能提供当时的连线图片。...

运算符优先级和,|| 的介绍

运算符优先级 关系运算的优先级高于逻辑运算&#xff0c;所以需要加上小括号来改变 更详细的运算符优先级可以去MATLAB官网看 &运算的优先级高于|优先级&#xff1a; &&&#xff0c;|| 的介绍 我们知道&#xff0c;&运算时&#xff0c;若第一个为 0 0 0&…...

Excel的文件导入遇到大文件时

Excel的文件导入向导如何把已导入数据排除 入起始行&#xff0c;选择从哪一行开始导入。 比如&#xff0c;前两行已经导入了&#xff0c;第二次导入的时候排除前两行&#xff0c;从第三行开始&#xff0c;就将导入起始行设置为3即可&#xff0c;且不勾选含标题行。 但遇到大文…...

SQL Having用法

拿个业务场景说这个案例&#xff0c;比如我们有个表里面可能有批改过的数据&#xff0c;批改过得数据不会随着新批改的数据覆盖&#xff0c;而是逐条插入表中&#xff0c;如果想找出包含最早批改的数据和最新批改数据的话&#xff0c;那么我们就需要用到了havinng 用法,假设最开…...

【mysql优化 | 新增分区】

在同步其他系统的数据&#xff0c;大概每天有16w多&#xff0c;目前已经600多万条数据了&#xff0c;导致查询的时候特别慢。 因为是报表&#xff0c;而且是每天统计&#xff0c;所以我们可以按照日期进行分区。 ALTER TABLE table PARTITION BY RANGE (TO_DAYS(rsdate)) (PA…...

vue 组件之间的传值方式

一、父组件向子组件传值 父组件可以使用 props 将数据传递给子组件。 <!-- 父组件 --> <template><ChildComponent :message"parentMessage" /> </template><script> import ChildComponent from ./ChildComponent.vue;export defau…...

VScode执行任务

背景 在vscode 中 如果执行命令需要传递进来参数&#xff0c;那么直接通过命令行终端的方式不太方便。通过task 任务的方式来进行启动执行&#xff0c;降低反复输入参数等繁琐工作。 首先可以查看vscode 官方文档 task 启动 crtl shift p .vscode/task.json 示例 执行cp…...

以太网链路详情

文章目录 1、交换机1、常见的概念1、冲突域2、广播域3、以太网卡1、以太网卡帧 4、mac地址1、mac地址表示2、mac地址分类3、mac地址转换为二进制 2、交换机的工作原理1、mac地址表2、交换机三种数据帧处理行为3、为什么会泛洪4、转发5、丢弃 3、mac表怎么获得4、同网段数据通信…...

将PDF流使用 canvas 绘制然后转为图片展示在页面上(二)

将PDF流转为图片展示在页面上 使用 pdfjs-dist 库来渲染 PDF 页面到 canvas 上&#xff0c;然后将 canvas 转为图片 安装 pdfjs-dist 依赖 npm install pdfjs-dist 或者 yarn add pdfjs-dist创建一个组件来处理 PDF 流的加载和渲染 该组件中是一个包含 PDF 文件的 ArrayBuffer…...