php定义一个数组, 通过随机数 (1-100) 给定20个整数,任意查询一个数字是否存在该20个整数中,如果存在输出"YES",如果不存在输出"NO"。
时间: 2024-10-20 19:03:10 浏览: 36
在PHP中,你可以使用`array_fill`函数生成一个包含20个随机整数的数组,然后利用`in_array`函数检查一个给定的数字是否存在于这个数组中。以下是完成这个任务的示例代码:
```php
<?php
// 定义数组长度和范围
$array_length = 20;
$range_start = 1;
$range_end = 100;
// 创建数组,用random_int填充随机值
$numbers = array_fill(0, $array_length, random_int($range_start, $range_end));
// 需要查找的数字
$search_number = 42; // 你可以替换为你想要查询的数字
// 检查数字是否存在
if (in_array($search_number, $numbers)) {
echo "YES";
} else {
echo "NO";
}
?>
```
在这个例子中,`random_int`函数用于生成1到100之间的随机整数。`in_array`函数会检查`$search_number`是否在`$numbers`数组中。如果找到,就输出"YES",否则输出"NO"。
相关问题
Java随机给定一个10以内的数字表示数组元素个数,随机给定一个100以内的数字表示查找的数字,查找该数是否在数组中
在Java中,你可以通过以下步骤生成指定范围内的数组并进行随机查找:
首先,你需要导入`java.util.Random`包,它包含用于生成随机数的类。
```java
import java.util.Random;
```
然后,你可以创建一个方法,接受两个整数参数作为范围,生成数组和目标值,并检查目标值是否存在于数组中:
```java
public class Main {
public static void main(String[] args) {
int arrayLength = generateRandomNumber(1, 10); // 生成1到10之间的随机数组长度
int targetValue = generateRandomNumber(1, 100); // 生成1到100之间的随机查找值
int[] numbers = new int[arrayLength]; // 创建数组
fillArray(numbers, arrayLength); // 随机填充数组
System.out.println("Looking for " + targetValue);
boolean found = contains(targetValue, numbers);
if (found) {
System.out.println("Found the value in the array.");
} else {
System.out.println("Value not found in the array.");
}
}
private static int generateRandomNumber(int min, int max) {
Random random = new Random();
return random.nextInt(max - min + 1) + min; // 返回[min, max]范围内的随机整数
}
private static void fillArray(int[] arr, int length) {
Random random = new Random();
for (int i = 0; i < length; i++) {
arr[i] = random.nextInt(100); // 随机填充值
}
}
private static boolean contains(int value, int[] array) {
for (int num : array) {
if (num == value) {
return true;
}
}
return false; // 数组中未找到目标值
}
}
```
在这个例子中,`generateRandomNumber`函数生成一个随机数,`fillArray`函数将数组填充满1到100范围内的随机数,而`contains`函数则检查目标值是否在数组中。
给定一个int数组,假设有10000个长度,里面放满1-100的随机整数。用Executors框架实现查找并输出该数组中50的出现个数,同时显示出程序开始和结束的时间
```
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
// 生成随机数组
int[] arr = new int[10000];
Random random = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = random.nextInt(100) + 1;
}
// 创建线程池
ExecutorService executorService = Executors.newFixedThreadPool(10);
// 开始时间
long start = System.currentTimeMillis();
// 提交任务
for (int i = 0; i < 10; i++) {
int finalI = i;
executorService.submit(() -> {
int count = 0;
for (int j = finalI * 1000; j < (finalI + 1) * 1000; j++) {
if (arr[j] == 50) {
count++;
}
}
System.out.println("线程" + Thread.currentThread().getName() + "中50的数量为:" + count);
});
}
// 关闭线程池
executorService.shutdown();
try {
// 等待所有任务完成
executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
// 结束时间
long end = System.currentTimeMillis();
System.out.println("50在数组中出现的总次数为:" + count(arr) + ",共用时:" + (end - start) + "毫秒");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static int count(int[] arr) {
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == 50) {
count++;
}
}
return count;
}
}
```
代码说明:
1. 首先生成一个长度为10000的随机数组。
2. 创建一个固定大小的线程池,大小为10。
3. 提交任务,将数组分成10份,每个线程负责处理其中一份。遍历数组,统计50出现的次数,并输出。
4. 关闭线程池,等待所有任务完成。
5. 计算50在整个数组中出现的次数,并输出程序运行时间。
阅读全文