平地惊雷,GPT-4o 凌晨震撼发布

GPT-4o

今日凌晨,OpenAI 2024 年春季发布会召开,OpenAI 通过短短 28 分钟的发布会,发布了「再次震惊世界」的 GPT-4o,其中 o 是指 omni(全能)的意思。

一款「全新交互(支持 文本/音频/视频 组合作为输入输出)」的、「快速(响应速度为 GTP-4 Turbo 的 2倍)」的、「能感受人类情感」的、「免费」的模型。

为什么是今天?

因为明天(5 月 15 号)就是 Google 的 I/0 大会,网传 Google 打算在会上公布大模型的最新进展:以 Gemini 为基础,名为 Pixie 的个人助手。

这下好了,Google 的关注度必然下降。

其实 OpenAI 对 Google 的狙击,不是第一次发生了。

早在 2023 年 12 月,谷歌计划上线 Gemini 时,OpenAI 便在 11 月抢先举办了首届开发者大会。

有过"被狙击"经验的 Google 这次没有光愣着,抓紧在官号中放出 Demo 的实时演示视频:

alt

但和 GPT-4o 相比,估计够呛,正如该帖子下的一位外国网友的留言:

Sorry Google but we got it one day earlier(对不起谷歌,但我们一天前已经得到这个了)

更加值得期待的是,在该发布会的前一天,Apple 和 OpenAI 的合作已宣布达成。

虽然合作方式尚未公布,但大概率发生的事应该是:OpenAI 的技术将会在这一次的苹果新品中集中亮相。

现在我们可以一同期待,这位像个真实人类一样,可以被随意打断,可以通过语气猜测用户情绪,支持端到端运行,使用体验和功能都无比强大的 GPT-4o 成为我们的新 Siri 了。

我不想再强调有多少技术或者岗位会被革命,千言万语的描述汇聚成一个单词:her。

alt

这也是 OpenAI 创始人、CEO 山姆·奥特曼在发布会后,发的帖子内容。

意在致敬在 2014 年获得奥斯卡最佳原创剧本的电影《Her》,由 斯派克·琼斯 执导和编剧的科幻爱情电影,讲述了一个孤独的男人和一个人工智能操作系统之间的不寻常的恋情。

...

回归主线。

来一道和「Apple」相关的算法题。

题目描述

平台:LeetCode

题号:754

在一根无限长的数轴上,你站在 0 的位置。终点在 target 的位置。

你可以做一些数量的移动 numMoves :

  • 每次你可以选择向左或向右移动。
  • i 次移动(从   i == 1 开始,到  i == numMoves),在选择的方向上走 i 步。

给定整数 target,返回 到达目标所需的 最小 移动次数(即最小 numMoves ) 。

示例 1:

输入: target = 2

输出: 3

解释:
第一次移动,从 0 到 1 。
第二次移动,从 1 到 -1 。
第三次移动,从 -1 到 2 。

示例 2:

输入: target = 3

输出: 2

解释:
第一次移动,从 0 到 1 。
第二次移动,从 1 到 3 。

提示:

数学

提示一:数轴上的任意点都以起点( 点)对称,只需要考虑对称点的任意一边

由于题目没有限制我们「不能到达哪些点」以及「出发的起始方向」,因此以起点为中心的左右两边对称。

即:左边所能到达任意一个点,都能通过调整所达路径的方向来将终点调整到右边。

同时由于起点是一个特殊的位置 点,因此相应的「正数点」和「负数点」对称,我们仅需考虑一边(例如正数域)即可。

提示二:先往靠近 target 的方向移动,到达或越过 target 的时候则停止

只考虑 target 为正的情况,我们假定起始先往靠近 target 的方向移动(即所有步数均为正值),根据是「到达」还是「越过」target 位置分情况讨论:

  • 若能直接到达 target,此时消耗的必然是最小步数,可直接返回;
  • 若越过了 target,假设此时消耗的步数为 ,所走的距离为 ,我们可以考虑是否需要增加额外步数来到达 target
提示三:越过 target 时,如何不引入额外步数

若不引入额外步数,意味着我们需要将此前某些移动的方向进行翻转,使得调整后的

我们假设需要调整的步数总和为 tot,则有 ,变形可得

若想满足上述性质,需要确保能找到这样的 tot,即 tot 合法,

不难推导出当 disttarget 差值为「偶数」时(两者奇偶性相同),我们可以找到这样的 tot,从而实现不引入额外步数来到达 target 位置。

由于我们的 是由数列 累加而来,因此必然能够在该数列 中通过「不重复选择某些数」来凑成任意一个小于等于 的数。

提示四:越过 target 时,如何尽量减少引入额外步数

disttarget 差值不为「偶数」时,我们只能通过引入额外步数(继续往右走)来使得,两者差值为偶数。

可以证明,最多引入步数不超过 步,可使用得两者奇偶性相同,即不超过 步可以覆盖到「奇数」和「偶数」两种情况。

根据 的余数关系分情况讨论:

  • 余数为 ,即 ,由于 ,其中一数为偶数, 为偶数;
  • 余数为 ,即 ,由于 ,两个奇数相乘为奇数, 为奇数;
  • 余数为 ,即 ,两个奇数相乘为奇数, 为奇数;
  • 余数为 ,即 ,其中一数为偶数, 为偶数。

因此在越过 target 后,最多引入不超过 步可使得 disttarget 奇偶性相同。

提示五:如何不通过「遍历」或「二分」的方式找到一个合适的 k 值,再通过不超过 步的调整找到答案

我们期望找到一个合适的 k 值,使得 ,随后通过增加 k 值来找到答案。

利用求和公式 ,我们可以设定 为起始值,随后逐步增大 k 值,直到满足「disttarget 奇偶性相同」。

Java 代码:

class Solution {
    public int reachNumber(int target) {
        if (target < 0) target = -target;
        int k = (int) Math.sqrt(2 * target), dist = k * (k + 1) / 2;
        while (dist < target || (dist - target) % 2 == 1) {
            k++;
            dist = k * (k + 1) / 2;
        }
        return k;
    }
}

C++ 代码:

class Solution {
public:
    int reachNumber(int target) {
        if (target < 0) target = -target;
        int k = static_cast<int>(std::sqrt(2 * target));
        int dist = k * (k + 1) / 2;
        while (dist < target || (dist - target) % 2 == 1) {
            k++;
            dist = k * (k + 1) / 2;
        }
        return k;
    }
};

Python 代码:

class Solution:
    def reachNumber(self, target: int) -> int:
        if target < 0:
            target = -target
        k = int(math.sqrt(2 * target))
        dist = k * (k + 1) / 2
        while dist < target or (dist - target) % 2 == 1:
            k += 1
            dist = k * (k + 1) / 2
        return k

TypeScript 代码:

function reachNumber(target: number): number {
    if (target < 0) target = -target
    let k = Math.floor(Math.sqrt(2 * target)), dist = k * (k + 1) / 2
    while (dist < target || (dist - target) % 2 == 1) {
        k++
        dist = k * (k + 1) / 2
    }
    return k
}
  • 时间复杂度:
  • 空间复杂度:

最后

给大伙通知一下 📢 :

全网最低价 LeetCode 会员目前仍可用 ~

📅 年度会员:有效期加赠两个月!!; 季度会员:有效期加赠两周!!

🧧 年度会员:获 66.66 现金红包!!; 季度会员:获 22.22 现金红包!!

🎁 年度会员:参与当月丰厚专属实物抽奖(中奖率 > 30%)!!

专属链接:leetcode.cn/premium/?promoChannel=acoier

我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻。

欢迎关注,明天见。

更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/626710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【AI学习】聊两句昨夜OpenAI的GPT-4o

蹭个热点&#xff0c;聊两句昨夜的大事件——OpenAI发布GPT-4o&#xff0c;我看到和想到的一点东西。 首先是端到端方法&#xff0c;前面关于深度学习的文章&#xff0c;对端到端的重要性做了一些学习&#xff0c;对端到端这个概念有了一些理解。正如Richard Sutton在《苦涩的…

直播预约丨《袋鼠云大数据实操指南》No.2:实时开发,如何成为数据智能化的有效驱动力

近年来&#xff0c;新质生产力、数据要素及数据资产入表等新兴概念犹如一股强劲的浪潮&#xff0c;持续冲击并革新着企业数字化转型的观念视野&#xff0c;昭示着一个以数据为核心驱动力的新时代正稳步启幕。 面对这些引领经济转型的新兴概念&#xff0c;为了更好地服务于客户…

C语言中的混合运算

1 混合运算 类型强制转换场景 整型数进行除法运算时&#xff0c;如果运算结果为小数&#xff0c;那么存储浮点数时一定要进行强制转换。例子&#xff1a; #include <stdio.h> //运算强制转换 int main(void) {int i5;//整型float ji/2;//这里做的是整型运算&#xff0…

【Linux取经路】进程通信之匿名管道

文章目录 一、进程间通信介绍1.1 进程间通信是什么&#xff1f;1.2 进程间通信的目的1.3 进程通信该如何实现 二、管道2.1 匿名管道2.1.1 站在文件描述符角度深入理解管道2.1.2 接口使用2.1.3 PIPE_BUFFER 和 Pipe capacity2.1.4 管道中的四种情况2.1.5 管道特征总结 2.2 匿名管…

PDF文件转换为CAD的方法

有时候我们收到一个PDF格式的设计图纸&#xff0c;但还需要进行编辑或修改时&#xff0c;就必须先将PDF文件转换回CAD格式。分享两个将PDF转换回CAD的方法&#xff0c;一个用到在线网站&#xff0c;一个用到PC软件&#xff0c;大家根据情况选择就可以了。 ☞在线CAD网站转换 …

STM32 CANFD 基础知识留档

讲得比较细的文章但可能有问题自行判定 附1 附2 前言 CAN2.0 协议中数据段波特率和仲裁段波特率默认是一致&#xff0c;因此只需要关注传输波特率即可 CANFD 协议是向下兼容 CAN2.0 的数据通讯&#xff0c;因此实际使用中需要配置 STM32H7 系列支持的标准是 Compliant with …

vue-cropper裁剪图片 vue

效果图 1.配置环境 npm install vue-cropper 2.代码 <template><div class"cropper-content"><div class"cropper-box"><div class"cropper"><vue-cropper ref"cropper" :img"option.img" :…

手撸XXL-JOB(三)——本地定时任务管理平台

引言 在XXL-JOB中&#xff0c;有一个xxl-job-admin项目&#xff0c;这个就相当于定时任务的调度平台&#xff0c;我们参考XXL-JOB&#xff0c;也添加这么一个调度平台&#xff0c;由于篇幅有限&#xff0c;我们先实现一个本地的定时任务调度平台&#xff0c;至于如何调用远程的…

element-ui的表单中,输入框、级联选择器的长度设置

使用<el-col>控制输入框的长度 <el-form-item label"姓名" label-width"80px"><el-col :span"15"><el-input v-model"form.name" autocomplete"off"></el-input></el-col></el-form…

图片制作二维码的3个步骤,适合多种图片格式使用

现在二维码经常被用来作为内容存储和展示的用途使用&#xff0c;从而减少对内存的空间占用&#xff0c;并且提升其他人获取图片的便捷性&#xff0c;通过扫码来快速查看。在很多的应用场景下都会用到这种方式来分享图片&#xff0c;与其他传输方式相比更加的简单快捷。那么如何…

k8s 网络组件详细 介绍

目录 一 k8s 有哪些网络组件 二 k8s 网络概念 1&#xff0c; k8s 三种网络 2&#xff0c;K8S 中 Pod 网络通信 2.1 Pod 内容器与容器之间的通信 2.2 同一个 Node 内 Pod 之间的通信 2.3 不同 Node 上 Pod 之间的通信 三 Flannel 网络组件 1&#xff0c;Flannel …

企业必看:镭速教你如何测试内网文件传输效率和稳定问题

在现代商业运作中&#xff0c;企业内部文件传输的效率和稳定性对于数据管理和业务流程极为重要。无论是远程工作还是团队协作&#xff0c;高效的文件传输都能显著提升工作效率。今天镭速小编就教你如何测试内网文件传输效率和稳定问题。 1、磁盘性能&#xff0c;即硬盘的读取和…

clion设置中文和背景图片以及破解

1.效果如下 2.下载最新版clion window下的clion下载 第一个exe和第二个zip都行&#xff0c;推荐exe具体安装不解释&#xff0c;请参考其他教程 3.汉化 英语观看不方便&#xff0c;可以使用插件汉化。在设置》插件&#xff08;plugins&#xff09;>Marketplace下的Chine…

Chatgpt教你使用Python开发iPhone风格计算器

上次使用Chatgpt写爬虫&#xff0c;虽然写出来的代码很多需要修改后才能运行&#xff0c;但Chatgpt提供的思路和框架都是没问题。 这次让Chatgpt写一写GUI程序&#xff0c;也就是你常看到的桌面图形程序。 由于第一次测试&#xff0c;就来个简单点的&#xff0c;用Python写用…

HTTP协议及应用

一.HTTP协议 1.HTTP协议版本 HTTP1.0&#xff1a;服务器处理完成后立即断开TCP连接&#xff08;无连接&#xff09;&#xff0c;服务器不跟踪每个客户端也不记录过去的请求&#xff08;无状态&#xff09;&#xff1b; HTTP1.1&#xff1a;KeepAlived长连接避免了连接建立和…

【平衡二叉树】AVL树(双旋)

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; C进阶 &#x1f389;其它专栏&#xff1a; C初阶 | Linux | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解AVL树的左双选和右双旋的相关内容。 如果看到最后您觉得这篇文章写…

鸿蒙内核源码分析 (内核启动篇) | 从汇编到 main ()

这应该是系列篇最难写的一篇&#xff0c;全是汇编代码&#xff0c;需大量的底层知识&#xff0c;涉及协处理器&#xff0c;内核镜像重定位&#xff0c;创建内核映射表&#xff0c;初始化 CPU 模式栈&#xff0c;热启动&#xff0c;到最后熟悉的 main() 。 内核入口 在链接文件…

知了汇智引领未来:全新AIGC系列课程,打造数字时代人才新标杆

在全球AIGC&#xff08;生成式人工智能&#xff09;技术加速发展的背景下&#xff0c;一系列权威报道揭示了该领域内市场潜力、行业应用、教育研究、政府监管以及具体应用场景的蓬勃进展。据腾讯网4月19日报道&#xff0c;中国AIGC应用市场规模预计于2024年达到200亿人民币&…

FART 不需要刷机,通过脚本动态脱抽取壳

准备环境 adb , 见上一篇文章&#xff1b;frida-fart, https://github.com/hanbinglengyue/FART;frida, 参考上一篇文章 工具配置 解压该文件后&#xff0c;将lib文件夹中的fart.so和fart64.so拷贝到/data/app目录下&#xff0c;如果需要管理员权限&#xff0c;通过adb root…

C#窗体程序设计笔记:如何调出控件工具箱,并设置控件的属性

文章目录 调出控件工具箱设置控件属性 调出控件工具箱 使用Visual Studio打开C#解决方案后&#xff0c;初始界面如下图所示&#xff1a; 接着&#xff0c;在上方的菜单栏依次选择“视图”“工具箱”&#xff0c;即可打开工具箱&#xff0c;如下图所示&#xff1a; 设置控件属…