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

搜广推校招面经三十九

小红书﹣图搜

一、两个整数的汉明距离

两个整数之间的汉明距离是指这两个数字对应二进制位相同位置不同的个数。换句话说,它就是将一个整数变成另一个整数所需要改变的二进制位的数量。例如,如果两个整数在它们的二进制表示中有三个位置上的比特不同,那么这两个整数的汉明距离就是3。
计算两个整数的汉明距离可以通过以下步骤实现:

  1. 首先对这两个整数进行异或(XOR)运算。异或运算是按位操作,当且仅当输入位不同时输出为1。因此,通过异或运算我们可以得到一个新的数,这个数的每个1都代表了原始两个数在那个位置上是不同的。
  2. 然后统计异或结果中1的个数,这个数量就是汉明距离。
  3. 代码:
def hamming_distance(x, y):
    xor_result = x ^ y     #  对两个数字做异或
    distance = 0
    while xor_result:  # 统计异或结果中1的个数(可以直接遍历,这里使用了一种叫做布赖恩·克尼根算法(Brian Kernighan's Algorithm)来高效计算二进制中1的个数)
        distance += 1
        xor_result &= xor_result - 1  # Remove the lowest set bit from xor_result
  
    return distance

# 示例调用
x = 1  # 二进制表示为 0001
y = 4  # 二进制表示为 0100
print("汉明距离:", hamming_distance(x, y))  # 输出应为2

1.2 编辑距离

如果大家做过一些文字或者字符串的特征特征工程,那一定知道另外一个度量字符串差异的距离,叫编辑距离
汉明距离和编辑距离在某些方面看起来相似,因为它们都涉及到了字符串(或数字的二进制表示)之间的差异性度量。

1.2.1. 力扣hot100_72.编辑距离(中等)

在这里插入图片描述

二、将 Attention 的点积改为余弦相似度会怎么样?

2.1. 归一化效果

  • 点积:受向量长度影响,可能导致某些维度主导注意力权重。
  • 余弦相似度:通过归一化消除向量长度的影响,使注意力更聚焦于方向而非大小。
  • 余弦相似度:在某些任务中可能提升表现,尤其是当向量长度差异较大时,但并非总是优于点积。

2.2. 计算复杂度

  • 点积:计算简单,复杂度为 O ( d ) O(d) O(d),其中 d d d 是向量维度。
  • 余弦相似度:需额外计算向量的 L2 范数,复杂度略高,但仍为 O ( d ) O(d) O(d)

三、装饰器是什么?

什么是 Python 装饰器

Python 装饰器(Decorator)是一种用于修改或扩展函数或方法行为的特殊语法。它本质上是一个高阶函数,接受一个函数作为输入,并返回一个新的函数。装饰器通常用于在不修改原函数代码的情况下,为函数添加额外的功能(如日志记录、权限检查、性能测试等)。

3.1. 装饰器的基本概念

  • 装饰器是一个函数(或可调用对象),它接受一个函数作为参数,并返回一个新的函数。
  • 装饰器使用 @ 符号来应用到目标函数上,其作用是对目标函数进行“包装”,从而在不修改原函数代码的情况下扩展其功能。

3.2. 装饰器的语法

def my_decorator(func):
    def wrapper(*args, **kwargs):
        print("在函数执行前做一些操作")
        result = func(*args, **kwargs)
        print("在函数执行后做一些操作")
        return result
    return wrapper

@my_decorator
def say_hello(name):
    print(f"Hello, {name}!")

say_hello("Alice")
  • 输出:
在函数执行前做一些操作
Hello, Alice!
在函数执行后做一些操作

http://www.kler.cn/a/578166.html

相关文章:

  • Vue 中地址栏参数与 HTTP 请求参数的同步问题
  • 工程化与框架系列(19)--前端安全防护
  • 2025/03/09训练
  • OneM2M:全球性的物联网标准-可应用于物联网中
  • 探秘 Netty 通信中的 SslHandler 类:保障网络通信安全的基石
  • MATLAB中movmax函数用法
  • 简单的 Python 示例,用于生成电影解说视频的第一人称独白解说文案
  • 通俗易懂的介绍LLM大模型技术常用专业名词(专业版)
  • 【C语言数据结构初阶】---基于单链表在控制台上实现贪吃蛇小游戏
  • go mod文件 项目版本管理
  • 向量内积(点乘)和外积(叉乘)
  • 深入解析:使用 Python 爬虫获取淘宝店铺所有商品接口
  • 支持向量简要理解
  • FOC 控制笔记【二】无感控制、滑膜观测器和PLL
  • WebView2网页封装桌面软件
  • RBAC 权限系统管理模型 学习笔记
  • [排序算法]直接插入排序
  • MPPT与PWM充电原理及区别详解
  • 【每日八股】Golang篇(二):关键字(上)
  • 锂电池组的串数设计研究