Познакомившись с множеством отечественных продуктов ChatGPT, я выбрал [ChatIC] Дао Хэшуна.
Познакомившись с множеством отечественных продуктов ChatGPT, я выбрал [ChatIC] Дао Хэшуна.
Предисловие

Привет, друзья! ChatGPT в последнее время очень популярен. Вы все им пользовались? Многие продукты, подобные ChatGPT, недавно были запущены в Китае. После некоторого опыта я наконец выбрал ChatIC от Dao Heshun.


Что может ChatIC?

 Помощь в написании кода

  Вспомогательное программное обеспечение

  Давайте сначала проведем простой тест,Пусть это поможет нам написать одинPythonизпузырьсортировать

Вопрос: Помогите мне написать фрагмент кода пузырьковой сортировки на Python.

  Кажется, это маленькое испытание для него совсем не сложное! Давайте усложним задачу!

Вопрос: Напишите код рекурсивной сортировки на пяти языках: go, python, java, c++ и php.

(1) Языковая версия Go

Язык кода:javascript
копировать
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

Язык кода:javascript
копировать
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

Язык кода:javascript
копировать
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++

Язык кода:javascript
копировать
#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

Язык кода:javascript
копировать
<?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 настроены правильно.

Язык кода:javascript
копировать
#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?

  (1)Войдите на официальный сайт ChatIC.

ChatICОфициальный сайт:ChatIC

(2) Зарегистрируйтесь и войдите в аккаунт

 (3) Начните использовать ChatIC!


boy illustration
Java перехватывает строку после определенного символа_java, как перехватить строку
boy illustration
Давайте кратко поговорим о технологии копирования на записи.
boy illustration
Выполнение собственных условий SQL-запроса в MyBatis Plus
boy illustration
Напоминание о выпуске общедоступной учетной записи WeChat (интерфейс сообщения шаблона общедоступной учетной записи WeChat)
boy illustration
5 шагов для установки среды протокола
boy illustration
Наиболее полные коды состояния HTTP
boy illustration
На основе языка Go мы шаг за шагом научим вас внедрять структуру системы управления серверной частью.
boy illustration
Эффективное управление журналами с помощью Spring Boot и Log4j2: подробное объяснение конфигурации
boy illustration
Что делать, если telnet не является внутренней или внешней командой [легко понять]
boy illustration
php-объект для анализа json_php json
boy illustration
Введение в принцип запуска Springboot, процесс запуска и механизм запуска.
boy illustration
Высокоуровневые операции Mongo, если данные не существуют, вставка и обновление, если они существуют (pymongo)
boy illustration
Проектирование и внедрение системы управления электронной коммерцией на базе Vue и SpringBoot.
boy illustration
Статья длиной в 9000 слов знакомит вас с процессом запуска SpringBoot — самым подробным процессом запуска SpringBoot в истории — с изображениями и текстом.
boy illustration
Как настроить размер экрана в PR. Учебное пособие по настройке размера видео в PR [подробное объяснение]
boy illustration
Элегантный и мощный: упростите операции ElasticSearch с помощью easy-es
boy illustration
Проект аутентификации по микросервисному токену: концепция и практика
boy illustration
【Java】Решено: org.springframework.http.converter.HttpMessageNotWritableException.
boy illustration
Изучите Kimi Smart Assistant: как использовать сверхдлинный текст, чтобы открыть новую сферу эффективной обработки информации
boy illustration
Начало работы с Docker: использование томов данных и монтирования файлов для хранения и совместного использования данных
boy illustration
Использование Python для реализации автоматической публикации статей в публичном аккаунте WeChat
boy illustration
Разберитесь в механизме и принципах взаимодействия потребителя и брокера Kafka в одной статье.
boy illustration
Spring Boot — использование Resilience4j-Circuitbreaker для реализации режима автоматического выключателя_предотвращения каскадных сбоев
boy illustration
13. Springboot интегрирует Protobuf
boy illustration
Примечание. Инструмент управления батареями Dell Dell Power Manager
boy illustration
Общая интерпретация класса LocalDate [java]
boy illustration
[Базовые знания ASP.NET Core] -- Веб-API -- Создание и настройка веб-API (1)
boy illustration
Настоящий бой! Подключите Passkey к своему веб-сайту для безопасного входа в систему без пароля.
boy illustration
Руководство по настройке Nginx: как найти, интерпретировать и оптимизировать настройки Nginx в Linux
boy illustration
Typecho отображает использование памяти сервера