GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (2)След. > >>   Поиск:  
 Автор Тема: Посмотрите какой я написал код!

Сообщений: 25
Посмотрите какой я написал код!
Добавлено: 16 мар 19 5:37
Реализация вектора на Си

#include <stdlib.h>
#include <stdio.h>

typedef struct
{
int *data;
int curent;
int length;

} vector;

vector makevector(int size)
{
vector vector;
vector.data = malloc(size * sizeof(int));
vector.curent = 0;
vector.length = size;
return vector;
}

void add2vector(vector* vector, int value)
{
if (vector->curent == vector->length - 1)
{
vector->length *= 2;
vector->data = realloc(vector->data, vector->length * sizeof(int));
}
vector->data[vector->curent] = value;
vector->curent++;
}

void printvector(vector* v)
{
for (int i = 0; i < v->curent; ++i)
{
printf("%d\n", v->data[i]);
}
}

int main()
{
vector v = makevector(2);
for (int i = 0; i < 33; ++i) add2vector(&v, i*i);

printvector(&v);

getchar();
}
[Ответ][Цитата]
Дмитрий Стволовой
Сообщений: 328
На: Посмотрите какой я написал код!
Добавлено: 16 мар 19 12:17
Цитата:
Автор: Ω
Реализация вектора на Си
Ну поздравляю, хули... а как это с ИИ связанно? Давайте лучше сюда код про ИИ, а не чёрт знает что, например MLP или kNN
[Ответ][Цитата]

Сообщений: 25
На: Посмотрите какой я написал код!
Добавлено: 17 мар 19 5:49
Цитата:
Автор: Дмитрий Стволовой

Ну поздравляю, хули... а как это с ИИ связанно? Давайте лучше сюда код про ИИ, а не чёрт знает что, например MLP или kNN
Я буду сюда постить интересные мне алгоритмы, Вы тоже можете, но коментируйте пожалуйста что реализовано, а не тупо код без форматирования как тот что я удалил

До "MLP или kNN" нужно реализовать массу подготовительных структур и алгоритмов, кроме того ИИ не на них сошелся клином, есть много ещё чего интересного.

Ветка модерируется, нет смысла чепушить, бессмыслица канет в забвении.
[Ответ][Цитата]
гость
45.66.32.*
На: Посмотрите какой я написал код!
Добавлено: 17 мар 19 7:22
Цитата:
Автор: Дмитрий Стволовой

Ну поздравляю, хули... а как это с ИИ связанно? Давайте лучше сюда код про ИИ, а не чёрт знает что, например MLP или kNN
ИИ начинается не с КНН а двоичного поиска


#include <stdio.h>
#include <stdlib.h>

int* BinSerarch(int* start, int* end, int val)
{
int* mid = start + (end - start) / 2;
if (val == *mid) return mid;
else
{
if (val > *mid) return BinSerarch(mid, end, val);
else return BinSerarch(start, mid, val);
}
}
Почему блять? Потому что интеллектуальная задача по сути своей - поисковая, "разум" что то ищет, решение проблемы, число и тп. а полный перебор - не эффективен, интеллектуальность эвристична, обходит перебор, таким образом и приходим к бинарному поиску, мать вашу.
[Ответ][Цитата]
гость
77.111.246.*
На: Посмотрите какой я написал код!
Добавлено: 18 мар 19 2:49
И? В чем искать то? Где та база знаний что можно назвать СИИ?
[Ответ][Цитата]
гость
45.66.32.*
На: Посмотрите какой я написал код!
Добавлено: 18 мар 19 7:12
Цитата:
Автор: гость

И? В чем искать то? Где та база знаний что можно назвать СИИ?
базу знаний можно организовать с помощью словаря
[Ответ][Цитата]
гость
94.156.77.*
На: Посмотрите какой я написал код!
Добавлено: 18 мар 19 8:20
Цитата:
Автор: гость

базу знаний можно организовать с помощью словаря
Ассоциативный словарь с нуля написать не каждому по плечу. По сути ассоциативный словарь это ядро kNN, а kNN считается квази-оптимальным алгоритмом ML, хотя и достаточно ресурсоёмким.
[Ответ][Цитата]

Сообщений: 25
На: Посмотрите какой я написал код!
Добавлено: 18 мар 19 10:33
Цитата:
Автор: гость

Ассоциативный словарь с нуля написать не каждому по плечу. По сути ассоциативный словарь это ядро kNN, а kNN считается квази-оптимальным алгоритмом ML, хотя и достаточно ресурсоёмким.
советую отвечать за свои слова кодом, а не только языком чесать

Продолжаем процесс, следующий на очереди односвязный список

#include <stdlib.h>
#include <stdio.h>

typedef struct
{
struct listnode1* next;
int data;

} listnode1;

typedef struct
{
listnode1* curent;
listnode1* first;

} list1;

list1 makelist()
{
list1 list = { 0 };
return list;
}


void add2list1(list1* list, int value)
{
listnode1* newItem = malloc(sizeof(listnode1));
newItem->data = value;
newItem->next = 0;

if (list->curent) list->curent->next = newItem;
else list->first = newItem;
list->curent = newItem;

}

void printlist1(list1* list)
{
listnode1* curent = list->first;
while (curent)
{
printf("%d\n", curent->data);
curent = curent->next;
}
}

void main()
{
list1 list = makelist();
for (int i = 0; i < 10; ++i) add2list1(&list, i);

printlist1(&list);

getchar();
}
[Ответ][Цитата]

Сообщений: 25
На: Посмотрите какой я написал код!
Добавлено: 19 мар 19 5:44
дамы и господа, прошу жаловать двусвязный список!

#include <stdlib.h>
#include <stdio.h>

typedef struct
{
struct listnode2* next;
struct listnode2* prev;
int data;

} listnode2;

typedef struct
{
listnode2* curent;
listnode2* first;

} list2;

list2 makelist2()
{
list2 list = { 0 };
return list;
}


void add2list2(list2* list, int value)
{
listnode2* newItem = malloc(sizeof(listnode2));
newItem->data = value;
newItem->next = 0;
newItem->prev = 0;

if (list->curent)
{
list->curent->next = newItem;
newItem->prev = list->curent;
}
else list->first = newItem;
list->curent = newItem;

}
void printlist2(list2* list)
{
listnode2* curent = list->first;
while (curent)
{
printf("%d\n", curent->data);
curent = curent->next;
}
}

void printlist2reverce(list2* list)
{
listnode2* curent = list->curent;
while (curent)
{
printf("%d\n", curent->data);
curent = curent->prev;
}
}

void main()
{
list2 list = makelist2();
for (int i = 0; i < 10; ++i) add2list2(&list, i);

printlist2(&list);
printf("\n");
printlist2reverce(&list);

getchar();
}
[Ответ][Цитата]

Сообщений: 25
На: Посмотрите какой я написал код!
Добавлено: 21 мар 19 5:38
пожалуй самый главная функция для двусвязного списка

void insertAftert(list2* list, int value1, int value2)
{
listnode2* curent = list->first;
while (curent)
{
if(curent->data==value1)
{
listnode2* newItem = malloc(sizeof(listnode2));
newItem->data = value2;

newItem->prev = curent;
newItem->next = curent->next;

curent->next->prev = newItem;
curent->next = newItem;

return;
}
curent = curent->next;
}
}
[Ответ][Цитата]
гость
89.234.157.*
На: Посмотрите какой я написал код!
Добавлено: 21 мар 19 11:07
список так правильно(нормально)

#include <stdlib.h>
#include <stdio.h>

typedef struct mylist
{
int data;
struct mylist* next;
} mylist;


mylist* getlast(mylist* list)
{
while (list)
{
if (list->next == NULL) return list;
list = list->next;
}
return NULL;
}

void addtomylist(mylist* last, int val)
{
mylist* next = malloc(sizeof(mylist));
next->data = val;
next->next = NULL;

last = getlast(last);
last->next = next;
}


void main()
{

mylist list = {0};
for (int i = 1; i < 10; ++i) addtomylist(&list, i*i);

mylist* curent = &list;
while (curent)
{
printf("%d\n", curent->data);
curent = curent->next;
}


}
[Ответ][Цитата]
гость
185.220.101.*
На: Посмотрите какой я написал код!
Добавлено: 21 мар 19 17:31
считается круто написать быстрый ассоциативный масив, но это не для лохов, не для геев
[Ответ][Цитата]
гость
199.249.230.*
На: Посмотрите какой я написал код!
Добавлено: 22 мар 19 12:28
Мне лично нравится какой код пишет батя робов - Иван Власкин
[Ответ][Цитата]

Сообщений: 25
На: Посмотрите какой я написал код!
Добавлено: 24 мар 19 10:39
Цитата:
Автор: гость

считается круто написать быстрый ассоциативный масив, но это не для лохов, не для геев

заказ выполнен, согласен это не для слабых духом

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

struct treenode
{
struct treenode* left;
struct treenode* right;
long key;
void* value;
};
typedef struct treenode treenode;

treenode* newtreenode(long key, void* value, int size)
{
treenode* newItem = malloc(sizeof(treenode));
newItem->key = key;

newItem->left = 0;
newItem->right = 0;

newItem->value = malloc(size);
memcpy(newItem->value, value, size);

return newItem;
}

void insert2map(treenode* tree, treenode* newItem)
{
if (newItem->key < tree->key)
{
if (tree->left) insert2map(tree->left, newItem);
else tree->left = newItem;
}
else if (newItem->key > tree->key)
{
if (tree->right) insert2map(tree->right, newItem);
else tree->right = newItem;
}
}


void* getitem(treenode* tree, long key)
{
if(tree)
{
if (tree->key == key) return tree->value;
else
if (tree->key > key) return getitem(tree->left, key);
else return getitem(tree->right, key);
}
else return NULL;
}

void print(treenode* tree)
{
if (tree->left) print(tree->left);
printf("%s\n", (char*)(tree->value));
if (tree->right) print(tree->right);
}

void main()
{
treenode* tree = newtreenode(0, "0", 1);
for (int i = 0; i < 10; ++i)
{
int r = rand() % 100;
char bufer[10];
_itoa_s(r, bufer, 10, 10);
insert2map(tree, newtreenode(r, bufer, 10));
}

print(tree);

getchar();
}
[Ответ][Цитата]
гость
51.15.56.*
На: Посмотрите какой я написал код!
Добавлено: 24 мар 19 17:58
Цитата:
Автор: Ω


заказ выполнен, согласен это не для слабых духом


void insert2map(treenode* tree, treenode* newItem)
{
if (newItem->key < tree->key)
{
if (tree->left) insert2map(tree->left, newItem);
else tree->left = newItem;
}
else if (newItem->key > tree->key)
{
if (tree->right) insert2map(tree->right, newItem);
else tree->right = newItem;
}
}


void* getitem(treenode* tree, long key)
{
if(tree)
{
if (tree->key == key) return tree->value;
else
if (tree->key > key) return getitem(tree->left, key);
else return getitem(tree->right, key);
}
else return NULL;
}

рекурсии - куево, медленно, лучше циклами, может в пятеро быстрее быть
[Ответ][Цитата]
 Стр.1 (2): [1]  2След. > >>