我们被给予一个大小为N(4的倍数的大小)的整数数组,我们必须 对数组执行异或运算,使得 input[1- 4] 类似于 utility_arr[1- 4]和计算条件是如果arr[1 – 4] = {a1, a2, a3, a4} 那么 q[1 – 4] = {a1 ⊕ a2 ⊕ a3, a1 ⊕ a2 ⊕ a4, a1 ⊕ a3 ⊕ a4, a2 ⊕ a3 ⊕ a4}
让我们看看这种情况的各种输入输出场景 -
In − int[] input = { 5, 2, 3, 4 };
Out − 异或后的结果运算 4 3 2 5
解释−异或门的输出仅在其两个输入端子处于“不同”逻辑电平时才变为“高”。如果这两个输入 A 和 B 都处于逻辑电平“1”或“0”,则输出为“0”,从而使门成为“奇数门但不是偶数门”。换句话说,当输入有奇数个 1 时,输出为“1”。
a1 ⊕ a2 ⊕ a3 = 5 ⊕ 2 ⊕ 3 = 4
a1 ⊕ a2 ⊕ a4 = 5 ⊕ 2 ⊕ 4 = 3
a1 ⊕ a3 ⊕ a4 = 5⊕ 3 ⊕ 4 = 2
a2 ⊕ a3 ⊕ a4 = 2 ⊕ 3 ⊕ 4 = 5
In − int[] input = { 7, 6, 4, 4, 3, 8, 9, 5 };
Out − XOR 运算后的结果 5 5 7 6 2 14 15 4
说明− 异或门的输出仅在其两个输入时变为“高”终端处于彼此“不同”的逻辑电平。如果这两个输入 A 和 B 都处于逻辑电平“1”或“0”,则输出为“0”,从而使门成为“奇数门但不是偶数门”。换句话说,当输入有奇数个 1 时,输出为“1”。仅适用于大小为 4 倍数的 input[],其他大小的输入数组将显示 0 代替奇数位置的数字。
异或运算后的结果 5 5 7 6 2 14 15 4
下面程序中使用的方法如下 -
根据 XOR a ⊕ a = 0 和 a ⊕ 0 = a 的性质。 (a ⊕ b ⊕ c) ⊕ (b ⊕ c ⊕ d) = a ⊕ d (As (b ⊕ c) ⊕ (b ⊕ c) = 0)
对于计算时将数组分为 4 组,我们将按照 XOR 的性质来计算每组的结果。
参考上述性质,使用 (a ⊕ d )我们可以计算b和c (a ⊕ b ⊕ d) ⊕ (a ⊕ d) = b (a ⊕ c ⊕ d) ⊕ (a ⊕ d) = c
通过使用 b 和 c,我们可以使用以下方法得到 a 和 d (a ⊕ b ⊕ c) ⊕ (b) ⊕ (c) = a (b ⊕ c ⊕ d) ⊕ (b) ⊕ (c) = d
对所有四组重复该过程
-
使用 2 个指针 i 和 j 迭代循环,直到数组的长度除以四,并引入临时值(ans)和实用程序数组(存储答案)。
-
在 for 循环内实现以下异或运算
ans= 输入数组[i] ⊕ 输入数组[i+3]
实用程序数组[i+1](计算 b)= 输入数组[i+1] ⊕ ans
实用数组[i+2](计算 c)= 输入数组[i+2] ⊕ ans
实用数组[i](计算a)=输入数组[i]⊕((效用数组[i + 1])^(效用数组[i + 2]))
效用数组[i](计算d) )= input array[i+3] ⊕ ((Utility array[i + 1]) ^ (Utility array[i + 2]))
并且指针被更新对于下一组四个字符
最后,打印数组并将结果返回给用户。
示例
import java.util.Arrays; import java.util.List; public class Tutorials{ static int ans = 0; public static void main(String args[]){ int[] input = {7, 1, 2, 3}; int[] arr = new int[input.length]; for (int i = 0, j = 0; j < input.length / 4; j++){ ans = input[i] ^ input[i + 3]; arr[i + 1] = input[i + 1] ^ ans; arr[i + 2] = input[i + 2] ^ ans; arr[i] = input[i] ^ ((arr[i + 1]) ^ (arr[i + 2])); arr[i + 3] = input[i + 3] ^ (arr[i + 1] ^ arr[i + 2]); i += 4; } System.out.println("Different XORs of elements in groups of size 4 is: "); for (int i = 0; i < arr.length; i++){ System.out.println(arr[i]); } } }
输出
如果我们运行上面的代码,将会生成以下输出
Different XORs of elements in groups of size 4 is : 4 5 6 0
以上是在Java中,使用大小为4的组对元素进行不同的XOR操作来查找数组的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver CS6
视觉化网页开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),