Привет, друзья! ChatGPT в последнее время очень популярен. Вы все им пользовались? Многие продукты, подобные ChatGPT, недавно были запущены в Китае. После некоторого опыта я наконец выбрал ChatIC от Dao Heshun.
Давайте сначала проведем простой тест,Пусть это поможет нам написать одинPythonизпузырьсортировать
Вопрос: Помогите мне написать фрагмент кода пузырьковой сортировки на Python.
Кажется, это маленькое испытание для него совсем не сложное! Давайте усложним задачу!
Вопрос: Напишите код рекурсивной сортировки на пяти языках: go, python, java, c++ и php.
(1) Языковая версия Go
package main
import (
"fmt"
)
func quickSort(arr []int) []int {
if len(arr) <= 1 {
return arr
}
pivot := arr[len(arr)-1]
var left []int
var right []int
for i := 0; i < len(arr)-1; i++ {
if arr[i] < pivot {
left = append(left, arr[i])
} else {
right = append(right, arr[i])
}
}
left = quickSort(left)
right = quickSort(right)
return append(append(left, pivot), right...)
}
func main() {
arr := []int{64, 34, 25, 12, 22, 11,90}
fmt.Println("сортироватьвперед:",arr)
arr = quickSort(arr)
fmt.Println("сортироватьназад:", arr)
}
(2) Версия языка Python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[-1]
left = [x for x in arr[:-1] if x < pivot]
right = [x for x in arr[:-1] if x >= pivot]
return quick_sort(left) + [pivot] + quick_sort(right)
arr = [64, 34, 25, 12, 22, 11,90]
print("сортироватьвперед:",arr)
arr = quick_sort(arr)
print("сортироватьназад:", arr)
(3) Версия языка Java
public class RecursiveSort {
public static void main(String[] args) {
int[] arr = {64, 34, 25, 12, 22, 11,90};
System.out.print("сортироватьвперед:"); display(arr);
quickSort(arr, 0,arr.length - 1);
System.out.print("сортироватьназад:"); display(arr);
}
public static void quickSort(int[] arr, int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[right];
int i = left, j = right - 1;
while (i <= j) {
while (i <= j && arr[i] <= pivot) {
i++;
}
while (i <= j && arr[j] >= pivot) {
j--;
}
if (i < j) {
swap(arr, i, j);
}
}
swap(arr, i, right);
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
private static void display(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
(4) Версия языка C++
#include <iostream>
using namespace std;
void quickSort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[right];
int i = left, j = right - 1;
while (i <= j) {
while (i <= j && arr[i] <= pivot) {
i++;
}
while (i <= j && arr[j] >= pivot) {
j--;
}
if (i < j) {
swap(arr[i], arr[j]);
}
}
swap(arr[i], arr[right]);
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
void display(int arr[], int n) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "сортироватьвперед:"; display(arr, n);
quickSort(arr, 0, n - 1);
cout << "сортироватьназад:"; display(arr, n);
return 0;
}
(5) языковая версия PHP
<?php
function quickSort($arr){
if(count($arr) <= 1){
return $arr;
}
$pivot = $arr[count($arr) - 1];
$left = $right = array();
for($i = 0; $i < count($arr) - 1; $i++){
if($arr[$i] < $pivot){
array_push($left, $arr[$i]);
}else{
array_push($right, $arr[$i]);
}
}
return array_merge(quickSort($left), array($pivot), quickSort($right));
}
$arr = array(64, 34, 25, 12, 22, 11, 90);
echo "сортироватьвперед:";print_r($arr);
$arr = quickSort($arr);
echo "сортироватьназад:";print_r($arr);
?>
После вышеуказанного теста я обнаружил, что программирование — это вообще не проблема! Поскольку ChatIC хорошо работает при программировании, давайте посмотрим, как ChatIC работает при программировании аппаратного обеспечения!
Вопрос: Световой код микроконтроллера STM32.
Ниже приведен простой код освещения микроконтроллера STM32, при условии, что контакты GPIO настроены правильно.
#include "stm32f4xx.h"
int main(void) {
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //Открываем GPIO A часы
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //настраивать GPIO_Pin_5 Контакт, который зажигает светодиод
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; //настраивать GPIO для режима вывода
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //настройки Режим вывода — двухтактный.
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //настраивать GPIO Скорость 50MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; //настраивать GPIO Пины не требуются PU / PD входить
GPIO_Init(GPIOA, &GPIO_InitStructure); //Инициализируем GPIO с помощью всех вышеуказанных конфигураций
while (1) { //бесконечный цикл
GPIO_SetBits(GPIOA, GPIO_Pin_5); //Загораемся LED
Delay(0xFFFFF); // задержка времени
GPIO_ResetBits(GPIOA, GPIO_Pin_5); //выключать LED
Delay(0xFFFFF); // задержка времени
}
}
void Delay(__IO uint32_t nCount) //Простая задержка функция времени
{
while(nCount--) {
}
}
Этот код настроит и инициализирует вывод GPIO_A5 на плате разработки STM32F4Discovery, будет использовать его в качестве выхода, а затем будет включать и выключать светодиодный индикатор.
Впоследствии,Я задал еще несколько технических вопросов,например,Нарисуйте монтажную плату
На что следует обратить внимание?
Вопрос: На что следует обратить внимание при рисовании разводки печатной платы?
Или“Разница между трансформатором EQ2514 и EQ2504
”。
Q: Разница между трансформатором EQ2514 и EQ2504
Задав эти два вопроса, я увидел Дао Хэшуня. Ответ предоставлен ChatIC,я в шоке и удивлен,Я действительно не ожидал такого типаChatGPTТакой мощный。Ответ быстрый и хороший!
Впоследствии я захотел узнать больше о чипе последовательного порта и задал еще один вопрос: «Порекомендуйте чип переключения последовательного порта». Дао Хешун ChatIC быстро ответил мне.
Q: Рекомендовать чип переключения последовательного порта
Чем больше я спрашивал, тем больше я увлекался. Я не только просил его перевести английскую таблицу данных, но и пытался попросить его порекомендовать альтернативные чипы.
Рисунок 1
даНА полупроводниковом TIP32
изdatesheetизанглийский контент。через дорогу Хоп скоро ChatIC-перевод
,большинствоназадполучилРисунок 2
изкитайский перевод。
Вопрос: Каковы альтернативные модели GD32F103RET6?
Помимо ответов на профессиональные процедурные вопросы, вы, безусловно, можете сделать и другие вещи. Например, писать романы, придумывать имена или дразнить ИИ и т. д. Очень интересно узнать больше.
Вопрос: Помогите мне написать роман на тему современного городского сверхъестественного ужаса. Количество слов около 600 000.
Вопрос: Моя маленькая племянница только что родилась. Ее фамилия Чжоу. Пожалуйста, помогите мне придумать несколько имен.
В целом впечатления очень хорошие! Знаете, на данном этапе не так много бесплатных и быстрых продуктов, подобных ChatGPT, так что поторопитесь и опробуйте его, пока он бесплатен!
ChatICОфициальный сайт:ChatIC