指向未来: 量子纠缠的本质是一个指针

指向未来: 量子纠缠的本质是一个指针

  • 概述
  • 基本概念
  • 理解量子纠缠
    • Python
    • Java
    • C++
  • 理解波粒二象性
    • Python
    • Java
    • C++
  • 理解量子隧穿
  • 理解宇宙常量
    • Python
    • Java
    • C++

概述

量子纠缠 (Quantum Entanglement) 是量子系统重两个或多个粒子间的一种特殊连接, 这种连接使得即使相隔很远, 这些粒子的状态也仍然互相依赖.
量子纠缠

基本概念

在探讨量子纠缠之前, 我们先阐述量子比特 (Qubit)的基本概念. 位 (Bit) 是信息的基本单位, 可以处于 0 或 1 的状态. 而量子比特可以同时处于 0 和 1 的叠加态. 即在同时 True 或 False 一个确定的状态, 直到被观测. 量子比特的特性包含叠加和纠缠, 叠加允许量子比特同时存在于多种可能的状态中. 对一个纠缠量子比特的观测会影响与它纠缠的另一个两字比特的状态, 无论两个两字比特相距多远.

理解量子纠缠

两个变相共享一个指针时, 当一个量子态改变时, 另一个量子态也会随着改变, 不管相隔多远.
在我们所处的 “游戏” 中, 物理空间的限制 (距离) 并不会影响指针, 在我们看来就是类似超光速的方式传递.

指针

Python

class QuantumBitdef __init__(self, state)self.state = state# 创建量子比特变量
qubit1 = QuantumBit(False)
qubit2 = qubit1print(id(qubit1), id(qubit2))  # 内存地址相同 (指针)
print(qubit1.state, qubit2.state)  # 调试输出# 修改量子比特 2 的状态, 1 随着修改
qubit2.state = True
print(qubit1.state, qubit2.state)  # 调试输出

输出结果

1795703080464 1795703080464
False False
True True

Java

public class QuantumBit {boolean state;public QuantumBit(boolean state) {this.state = state;}public static void main(String[] args) {QuantumBit qubit1 = new QuantumBit(false);QuantumBit qubit2 = qubit1;System.out.println(System.identityHashCode(qubit1) + " " + System.identityHashCode(qubit2));  // 内存地址System.out.println(qubit1.state + " " + qubit2.state);  // 调试输出// 修改量子比特 2 的状态, 1 随着修改qubit2.state = true;System.out.println(qubit1.state + " " + qubit2.state);  // 调试输出}
}

输出结果:

225534817 225534817
false false
true true

C++

#include <iostream>class QuantumBit {public:bool state;QuantumBit(bool initState) : state(initState) {}
};int main() {QuantumBit* qubit1 = new QuantumBit(false);QuantumBit* qubit2 = qubit1;std::cout << qubit1 << " " << qubit2 << std::endl;  // 内存地址std::cout << qubit1->state << " " << qubit2->state << std::endl;  // 调试输出// 修改量子比特 2 的状态, 1 随着修改qubit2->state = true;std::cout << qubit1->state << " " << qubit2->state << std::endl;  // 调试输出delete qubit1;  // 清理内存// 不需要 delete qubit2, 内存地址相同return 0;
}

输出结果:

0x54de70 0x54de70
0 0
1 1

理解波粒二象性

同理当我们观测光是粒子还是波的时候, 我们的观测就是在 “游戏” 中调用一次函数, 这就会改变指针的状态, 从而导致量子纠缠的改变或解除 (塌缩).

光既不是粒子也不是波, 拥有绝对速度所以可能呈现为粒子或波, 取决于我们怎么调用函数. 为了避免我们这个 “游戏” 吃过多的算力, 所以没有观测的时候就不需要加载, 观测了才加载.

Python

import randomclass QuantumObject:def __init__(self):# 初始状态为 None,表示既是波也是粒子 (叠加态)self.state = Nonedef observe(self):# 观测时随机决定对象表现为波或粒子self.state = random.choice(['wave', 'particle'])return self.state# 创建一个量子对象
quantum_object = QuantumObject()# 模拟观测过程
for _ in range(10):result = quantum_object.observe()print(result)

输出结果:

particle
wave
particle
wave
wave
particle
particle
particle
wave
wave

Java

import java.util.Random;class QuantumObject {private String state;public QuantumObject() {// 初始状态为 null,表示既是波也是粒子 (叠加态)this.state = null;}public String observe() {// 观测时随机决定对象表现为波或粒子Random random = new Random();this.state = random.nextBoolean() ? "wave" : "particle";return this.state;}
}public class Main {public static void main(String[] args) {QuantumObject quantumObject = new QuantumObject();// 模拟观测过程for (int i = 0; i < 10; i++) {String result = quantumObject.observe();System.out.println(result);}}
}

输出结果:

标准输出:particle
wave
particle
particle
wave
wave
wave
particle
wave
wave

C++

#include <iostream>
#include <cstdlib>
#include <ctime>class QuantumObject {std::string state;public:QuantumObject() : state("") {}std::string observe() {// 观测时随机决定对象表现为波或粒子state = (rand() % 2 == 0) ? "wave" : "particle";return state;}
};int main() {srand(time(0));  // 初始化随机数生成器QuantumObject quantumObject;// 模拟观测过程for (int i = 0; i < 10; i++) {std::string result = quantumObject.observe();std::cout << result << std::endl;}return 0;
}

输出结果:

particle
wave
particle
wave
wave
particle
wave
particle
wave
particle

理解量子隧穿

当粒子通过量子势垒时, 正常来说是过不去的. 但是如果粒子是一个函数 (Function), 代表粒子的就是一个函数指针, 量子势垒是一个调度器. 之所以量子无法穿过势垒, 是应该进入势垒后指针发生了偏移. 当我们看到接触势垒被弹回来的粒子, 我们看到的是该粒子的指针, 但是不是原来的例子所指的函数对象了.

量子隧穿

import randomdef particle_function():return "原始粒子"def altered_function():return "改变后的粒子"def quantum_barrier(particle):if random.random() < 0.5:  # 假设有 50% 概率粒子指针发生偏移return altered_functionelse:return particlefor _ in range(10):# 创建粒子函数指针particle_ptr = particle_function# 模拟粒子接触量子势垒particle_ptr = quantum_barrier(particle_ptr)# 输出粒子状态print(particle_ptr())

输出结果:

原始粒子
原始粒子
改变后的粒子
改变后的粒子
改变后的粒子
改变后的粒子
改变后的粒子
原始粒子
改变后的粒子
改变后的粒子

理解宇宙常量

为了避免我们这个 “游戏” 产生内存溢出或者消号过多算力, 所以我们需要一些常量 (Constant) 来进行限速.

速度越快时间越慢, 为了避免游戏崩溃, 对于消耗过多算力的函数, 游戏回尽可能少的调用, 放慢时钟. 在物理上就会导师时间间隔变长.

Python

# 光速, 单位: 米 / 秒
SPEED_OF_LIGHT = 299792458# 普朗克常量, 单位: 焦耳·秒
PLANCK_CONSTANT = 6.62607015e-34# 万有引力常数, 单位: 牛顿·平方米 / 平方千克
GRAVITATIONAL_CONSTANT = 6.67430e-11# 玻尔兹曼常量, 单位: 焦耳 / 开尔文
BOLTZMANN_CONSTANT = 1.380649e-23# 阿伏伽德罗常数, 单位: 1 / 摩尔
AVOGADRO_CONSTANT = 6.02214076e23# 电子电荷, 单位: 库仑
ELEMENTARY_CHARGE = 1.602176634e-19# 真空磁导率, 单位: 特斯拉·米 / 安培
VACUUM_PERMEABILITY = 4 * 3.14159265358979323846e-7# 真空电容率, 单位: 法拉 / 米
VACUUM_PERMITTIVITY = 8.854187817e-12# 标准大气压, 单位: 帕斯卡
STANDARD_ATMOSPHERE = 101325# 斯特藩-玻尔兹曼常数, 单位: 瓦特 / 平方米·开尔文^4
STEFAN_BOLTZMANN_CONSTANT = 5.670374419e-8

Java

// 光速, 单位: 米 / 秒public static final double SPEED_OF_LIGHT = 299792458;// 普朗克常量, 单位: 焦耳·秒public static final double PLANCK_CONSTANT = 6.62607015e-34;// 万有引力常数, 单位: 牛顿·平方米 / 平方千克public static final double GRAVITATIONAL_CONSTANT = 6.67430e-11;// 玻尔兹曼常量, 单位: 焦耳 / 开尔文public static final double BOLTZMANN_CONSTANT = 1.380649e-23;// 阿伏伽德罗常数, 单位: 1 / 摩尔public static final double AVOGADRO_CONSTANT = 6.02214076e23;// 电子电荷, 单位: 库仑public static final double ELEMENTARY_CHARGE = 1.602176634e-19;// 真空磁导率, 单位: 特斯拉·米 / 安培public static final double VACUUM_PERMEABILITY = 4 * Math.PI * 1e-7;// 真空电容率, 单位: 法拉 / 米public static final double VACUUM_PERMITTIVITY = 8.854187817e-12;// 标准大气压, 单位: 帕斯卡public static final int STANDARD_ATMOSPHERE = 101325;// 斯特藩-玻尔兹曼常数, 单位: 瓦特 / 平方米·开尔文^4public static final double STEFAN_BOLTZMANN_CONSTANT = 5.670374419e-8;

C++

// 阿伏伽德罗常数, 单位: 1 / 摩尔
static constexpr double AVOGADRO_CONSTANT = 6.02214076e23;// 电子电荷, 单位: 库仑
static constexpr double ELEMENTARY_CHARGE = 1.602176634e-19;// 真空磁导率, 单位: 特斯拉·米 / 安培
static constexpr double VACUUM_PERMEABILITY = 4 * 3.14159265358979323846e-7;// 真空电容率, 单位: 法拉 / 米
static constexpr double VACUUM_PERMITTIVITY = 8.854187817e-12;// 标准大气压, 单位: 帕斯卡
static constexpr int STANDARD_ATMOSPHERE = 101325;// 斯特藩-玻尔兹曼常数, 单位: 瓦特 / 平方米·开尔文^4
static constexpr double STEFAN_BOLTZMANN_CONSTANT = 5.670374419e-8;

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

e2studio开发三轴加速度计LIS2DW12(3)----检测活动和静止状态

e2studio开发三轴加速度计LIS2DW12.3--检测活动和静止状态 概述视频教学样品申请源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置R_SCI_UART_Open()函数原型回调函数user_uart_callback ()…

4D毫米波雷达——原理、对比、优势、行业现状

前言 4D 毫米波雷达是传统毫米波雷达的升级版&#xff0c;4D指的是速度、距离、水平角度、垂直高度四个维度。 相比传统 3D 毫米波雷达&#xff0c;4D 毫米波雷达增加了“高度”的探测&#xff0c;将第四个维度整合到传统毫米波雷达中。 4D毫米波雷达被视为未来车载雷达的一…

Redis 笔记一

概览 1.Redis核心数据存储结构 2.Redis底层String编码int&embstr&raw 3.Redis底层压缩列表&跳表&哈希表 4.Redis底层Zset实现压缩列表和跳表如何选择 5.基于Redis实现微博&抢红包&12306核心业务 辅助学习&#xff1a;Redis 教程 | 菜鸟教程 1.Redis为什…

macOS系统下载安装IDEA 操作流程

目录 第一步 进入官网&#xff0c;选择箭头指向的版本 第二步 下载完成后打开&#xff0c;拖动安装包安装​编辑 第三步 点击" project"&#xff0c;在JDK下拉框选择"Download JDK" 第四步 下载完成以后&#xff0c;点击右下角的Create按钮。 第一步 进…

2.mac 安装 Visual studio code 整合go开发

目录 概述前置下载关键命令整合C#go配置go插件常见的go工具安装测试 结束 概述 mac 安装 Visual studio code 整合go开发 相关前置文章 go安装及相关配置 文章 前置 官网速递 mac 系统高于等于 10.15.x 可以直接最新版本 我的系统是 10.13 &#xff0c;所以只能安装此版本…

关于git与git-lfs对文件压缩存储方面的研究

先说结论&#xff0c;git使用了Delta增量压缩算法&#xff0c;git-lfs实测没有进行任何压缩&#xff0c;这个结论让我很震惊。 测试过程如下&#xff1a; 测试git仓库自身的压缩 准备一个包含许多杂项文件的文件夹&#xff0c;大概几百M&#xff0c;要保证有一个txt文本文件…

c JPEG 1D DCT 优化矩阵

这两个图可能就是AAN 的数学模型 优化DCT就是用代码实现矩阵9,10 9和10已经把64个系数缩小到一半32个了。光从这两图可看出&#xff0c;优化后乘法少了64-3232个&#xff0c;加法少了64-32-824。估计优化时间可少百分之40左右。

uni-app 经验分享,从入门到离职(年度实战总结:经验篇)——上传图片以及小程序隐私保护指引设置

文章目录 &#x1f525;年度征文&#x1f4cb;前言⏬关于专栏 &#x1f3af;关于上传图片需求&#x1f3af;前置知识点和示例代码&#x1f9e9;uni.chooseImage()&#x1f9e9;uni.chooseMedia()&#x1f4cc;uni.chooseImage() 与 uni.chooseMedia() &#x1f9e9;uni.chooseF…

JFlash工具将多个Bin文件或hex文件合并成一个(app+bootloader)

开发过程中&#xff0c;会遇到需要将多个bin文件合并成一个bin文件&#xff0c;尤其是需要将bootloader文件和App文件合并成一个文件。 1.使用version6.8下载地址&#xff1a;https://www.segger.com/downloads/jlink/ 2.芯片运行的起始地址:J-Flash工具可以根据选择的芯片类型…

宏集干货丨探索物联网HMI的端口转发和NAT功能

来源&#xff1a;宏集科技 工业物联网 宏集干货丨探索物联网HMI的端口转发和NAT功能 原文链接&#xff1a;https://mp.weixin.qq.com/s/zF2OqkiGnIME6sov55cGTQ 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; #工业自动化 #工业物联网 #HMI 前 言 端口转发和NAT功…

UML-通信图和交互概览图(通信图和顺序图的区别与联系)

UML-通信图和交互概览图&#xff08;通信图和顺序图的区别与联系&#xff09; 一、通信图简介1.消息2.链接 二、通信图和[顺序图](https://blog.csdn.net/weixin_65032328/article/details/135587782)的联系与区别三、交互概览图四、顺序图转化为通信图练习 一、通信图简介 通…

BEESCMS靶场小记

MIME类型的验证 image/GIF可通过 这个靶场有两个小坑&#xff1a; 1.缩略图勾选则php文件不执行或执行出错 2.要从上传文件管理位置获取图片链接&#xff08;这是原图上传位置&#xff09;&#xff1b;文件上传点中显示图片应该是通过二次复制过去的&#xff1b;被强行改成了…