Форум программистов, компьютерный форум, киберфорум
Цифровая обработка сигналов
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/294: Рейтинг темы: голосов - 294, средняя оценка - 4.82
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371

Как узнать частоту звука?

20.01.2012, 16:11. Показов 64851. Ответов 252
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
народ,подскажите кто знает.обработкой сигнала нигода не занимался,поэтому если что-то говорю не правильно хочу программно определить к какой ноте принадлежит звук. Имею частоту дискретизации 8кГц и глубину 16 бит. значения этой выборки заносятся в массив.
1)Что представляют из себя эти значения?
если я правильно понял то каждый элемент массива это значение частоты в момент времени?
2)что нужно сделать с этим массивом чтобы узнать ноту?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2012, 16:11
Ответы с готовыми решениями:

Как менять частоту звука на STM32
Всем привет, на курсовую дали вот такое задание "Разработать МК устройство которое позволяет в зависимости от нажимаемой кнопки изменять...

Узнать из программы частоту процессора
Приветствую. Подскажите способ узнать из программы частоту процессора (ATMiko32, впрочем хотелось бы универсальный ваирант).

Как узнать частоту звука без сторонних библиотек
кто нибудь знает как в работать со звуком без сторонних библиотек? мне нужно чтобы во время проигрывания звука можно было узнать его...

252
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
24.05.2013, 12:47
Студворк — интернет-сервис помощи студентам
Пару раз заспасибили, значит тема помогла.
Люди, подскажите как в качестве анализатора частоты прикрутить эту библиотеку в исходных кодах - http://sourceforge.net/projects/kissfft/
Главная проблема текущей версии - слишком грубое определение частоты через интервал = частота_семплирования/фреймов_в_буфере. Предлагаю поискать более точные способы замера
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 12:45
Вот мои результаты. Частота определяется с точностью SAMPLE_RATE/FRAMES_PER_BUFFER, как добиться определения частоты с точностью до сотых герца не меняя этих параметров?
Проблема в том, что при игре низких звуков (пятая открытая струна и тем более шестая) максимальную амплитуду имеют гармоники, а не основной тон. То есть вместо нужных 110 Гц показывает 220 Гц. Как это исправить?
Код fft скопипастен с вики. dll для работы портаудио скачаны из инета, сам не компилировал.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
#include <stdio.h>
#include <stdlib.h>
#include "portaudio.h"
 
#define SAMPLE_RATE (44100)
// ПРЕОБРАЗОВАНИЕ ФУРЬЕ
//       N    = 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384;
//       LogN = 2, 3,  4,  5,  6,   7,   8,   9,   10,   11,   12,   13,    14;
#define FRAMES_PER_BUFFER (16384)
#define POW_2 (14)
#define NUM_CHANNELS (1)
 
/* Select sample format. */
#define PA_SAMPLE_TYPE paFloat32
#define SAMPLE_SIZE (4)
#define SAMPLE_SILENCE (0.0f)
#define CLEAR(a) memset( (a), 0, FRAMES_PER_BUFFER * NUM_CHANNELS * SAMPLE_SIZE ) // обнуление массива
 
#define  NUMBER_IS_2_POW_K(x)   ((!((x)&((x)-1)))&&((x)>1))  // x is pow(2, k), k=1,2, ...
#define  FT_DIRECT        -1    // Direct transform.
#define  FT_INVERSE        1    // Inverse transform.
 
int  FFT(float *Rdat, float *Idat, int N, int LogN, int Ft_Flag)
{
    // parameters error check:
    if((Rdat == NULL) || (Idat == NULL))                  return 0;
    if((N > 16384) || (N < 1))                            return 0;
    if(!NUMBER_IS_2_POW_K(N))                             return 0;
    if((LogN < 2) || (LogN > 14))                         return 0;
    if((Ft_Flag != FT_DIRECT) && (Ft_Flag != FT_INVERSE)) return 0;
 
    register int  i, j, n, k, io, ie, in, nn;
    float         ru, iu, rtp, itp, rtq, itq, rw, iw, sr;
 
    static const float Rcoef[14] =
    {
        -1.0000000000000000F,  0.0000000000000000F,  0.7071067811865475F,
        0.9238795325112867F,  0.9807852804032304F,  0.9951847266721969F,
        0.9987954562051724F,  0.9996988186962042F,  0.9999247018391445F,
        0.9999811752826011F,  0.9999952938095761F,  0.9999988234517018F,
        0.9999997058628822F,  0.9999999264657178F
    };
    static const float Icoef[14] =
    {
        0.0000000000000000F, -1.0000000000000000F, -0.7071067811865474F,
        -0.3826834323650897F, -0.1950903220161282F, -0.0980171403295606F,
        -0.0490676743274180F, -0.0245412285229122F, -0.0122715382857199F,
        -0.0061358846491544F, -0.0030679567629659F, -0.0015339801862847F,
        -0.0007669903187427F, -0.0003834951875714F
    };
 
    nn = N >> 1;
    ie = N;
    for(n=1; n<=LogN; n++)
    {
        rw = Rcoef[LogN - n];
        iw = Icoef[LogN - n];
        if(Ft_Flag == FT_INVERSE) iw = -iw;
        in = ie >> 1;
        ru = 1.0F;
        iu = 0.0F;
        for(j=0; j<in; j++)
        {
            for(i=j; i<N; i+=ie)
            {
                io       = i + in;
                rtp      = Rdat[i]  + Rdat[io];
                itp      = Idat[i]  + Idat[io];
                rtq      = Rdat[i]  - Rdat[io];
                itq      = Idat[i]  - Idat[io];
                Rdat[io] = rtq * ru - itq * iu;
                Idat[io] = itq * ru + rtq * iu;
                Rdat[i]  = rtp;
                Idat[i]  = itp;
            }
 
            sr = ru;
            ru = ru * rw - iu * iw;
            iu = iu * rw + sr * iw;
        }
 
        ie >>= 1;
    }
 
    for(j=i=1; i<N; i++)
    {
        if(i < j)
        {
            io       = i - 1;
            in       = j - 1;
            rtp      = Rdat[in];
            itp      = Idat[in];
            Rdat[in] = Rdat[io];
            Idat[in] = Idat[io];
            Rdat[io] = rtp;
            Idat[io] = itp;
        }
 
        k = nn;
 
        while(k < j)
        {
            j   = j - k;
            k >>= 1;
        }
 
        j = j + k;
    }
 
    if(Ft_Flag == FT_DIRECT) return 1;
 
    rw = 1.0F / N;
 
    for(i=0; i<N; i++)
    {
        Rdat[i] *= rw;
        Idat[i] *= rw;
    }
 
    return 1;
}
 
 
int main()
{
    printf("Frequency\n");
 
    PaStreamParameters inputParameters;
    PaStream *stream = NULL;
    PaError err;
    float *sampleBlock,max_sample,len_vector;
    int i,j;
    int max_ampl;
    int max_i;
    int numBytes;
    float Im[FRAMES_PER_BUFFER];
 
    printf("patest_read_write_wire.c\n");
    fflush(stdout);
 
    numBytes = FRAMES_PER_BUFFER * NUM_CHANNELS * SAMPLE_SIZE ;
    sampleBlock = (float *) malloc( numBytes );
 
    CLEAR( sampleBlock );
 
    Pa_Initialize();
    inputParameters.device = Pa_GetDefaultInputDevice();
    inputParameters.channelCount = NUM_CHANNELS;
    inputParameters.sampleFormat = PA_SAMPLE_TYPE;
    inputParameters.suggestedLatency = Pa_GetDeviceInfo( inputParameters.device )->defaultHighInputLatency ;
    inputParameters.hostApiSpecificStreamInfo = NULL;
 
 
    Pa_OpenStream(
        &stream,
        &inputParameters,
        0,
        SAMPLE_RATE,
        FRAMES_PER_BUFFER,
        paClipOff,
        NULL,
        NULL );
 
    Pa_StartStream( stream );
    printf("*** READING STREAM ***\n");
    fflush(stdout);
 
    while(1)
    {
        Pa_ReadStream( stream, sampleBlock, FRAMES_PER_BUFFER );
        max_sample=0;
        printf("\r");
        // определяем максимальную амплитуду
        for (j=0; j<FRAMES_PER_BUFFER; ++j)
        {
            if (sampleBlock[j] > max_sample) max_sample=sampleBlock[j];
        }
        printf("Amplitude=%3.0f  \t",max_sample*100);
 
        if (max_sample>0.3) // если аплтитуда мала, ничего не анализируем
        {
            for(i=0; i<FRAMES_PER_BUFFER; i++) Im[i] = 0.0; // обнуляем мнимую часть
            FFT(sampleBlock, Im, FRAMES_PER_BUFFER, POW_2, -1); // отправляем на БПФ
 
            max_ampl=0;
            max_i=0;
 
            for(i=15; i<FRAMES_PER_BUFFER/100; i++) // ищем максимальный вектор
            {
                len_vector=sampleBlock[i]*sampleBlock[i]+Im[i]*Im[i];
                if (len_vector>max_ampl)
                {
                    max_ampl=len_vector;
                    max_i=i;
                }
            }
            printf("Freq= %4.2f  \n",(float)max_i*SAMPLE_RATE/FRAMES_PER_BUFFER); // выводим частоту
        }
        else printf("\t\t\t\t\t");
    }
 
    CLEAR( sampleBlock );
    free( sampleBlock );
    Pa_StopStream( stream );
    Pa_Terminate();
    return 0;
}
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 14:02
...намудрили, шаг по частоте в выходном спектре = частоте дискретизации / количество точек преобразования (а не количество отсчетов в сэмпле), что при 44100/1024~ 43 Гц. Ссылки на рабочие реализации FFT даны, на литературу тоже, даже FFTW либа имеет свой сайт с готовыми примерами, а вы обратились почему-то к вики. Вот и расхлебывайте.

А по сабжу, для повышения точности методов FFT используют несколько параллельно проводимых преобразований с разным количеством точек, так реализовано в некоторых цифровых осциллографах, что дает более четкую картинку спектрограммы и более высокую точность за счет совмещения нескольких спектров в единицу времени с разным разрешением по частоте. Вот так вот.
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 14:35
Я не профессионал. Как использовать примеры на делфи в языке си?
Тут же передаются FFT(sampleBlock, Im, FRAMES_PER_BUFFER, POW_2, -1); почему вы делите 44100/1024 ?
Не подскажете, что сделать чтобы определялись басовые ноты, а не их гармоники?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 14:55
...причем тут примеры на Delphi? Библиотека fftw кроссплатформенна, если речь о примерах из моих статей, то уже давно разработана библиотека fftr для сторонних разработчиков.

Насчет гармоник баса, не понял... да, нотный частотный ряд делится определенным образом (см. выше), но причем тут FFT? ХОчется точности, увеличивайте размер буфера из отсчетов для анализа и количество задаваемых точек преобразования + метод вариации количества точек преобразования и даже частот дискретизации для перекрытия заданного нотного ряда и доли герца тут не нужны - обратитесь к таблице выше (на моей памяти есть тут тема, где берется fft с миллионом точек, только тут время, время).
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 14:58
Можно ли частоту уточнить интерполированием около максимума? влево и вправо по два или три значения учесть

Добавлено через 2 минуты
Пятая струна имеет частоту 110 герц, но при дёргании программа распознаёт её как 220 гц.
Ноты на шестой струне так же определяются не 81 гц, а 162 гц. То есть программа показывает не основную частоту, а более громкую гармонику
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 15:12
...правильно показывает. Тут есть тема, так и называется - определение частоты основного тона, возможно вам подойдет лучше.

В то же время, вам никто не мешает увеличить разрешение по частоте, сделать FFT, скажем на 4096 точек, и применить одну маленькую хитрость (кроме уже выше рекомендованных) - сетка частот у вас дискретна и постоянна в спектре и то, что оно вам покажет ту гармонику, которая ближе и попадает в сетку - верно, но ведь и вы данную сетку можете сравнивать с сеткой нот и подобрать ближайшую ноту. Ферштеен?

p.s.: теперь насчет струн, программа определяет основной тон, если гармоника в спектре имеет максимум, то она и будет основным тоном ...а то что у вас определяет все время в два раза выше говорит об ошибке в вашем алгоритме, статической погрешности, где то забыли поделить на два ...простой способ - сгенерите синусоиду в каком нить аудиоредакторе, скажем AUDACITY с заданной частотой и проверьте свой алгоритм. Андерстенд?
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 15:42
Не понимаю. я на анализ передаю 16384 точек, а вы говорите 1024.
С определением нот по частоте - не проблема, задача решена полностью.
Частоту на всех струнах определяет правильно, но на басовых временами определяет то правильно, то вторую гармонику за один дёрг струны.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 15:49
...раз не понимаете разницы между количеством отсчетов для анализа и количеством точек преобразования бабочки БПФ (ваше N в коде ), перечитайте еще раз теорию.

P.S.: конечно музыкальными инструментами не увлекаюсь, не мне судить, но вы не думали, что вероятно так и есть и 'басовые' дают несколько гармоник? Просмотрите любым сторонним спектроанализатором, тем же Audacity, еще лучше, если в режиме сонограммы в виде 3D проекции, этого в ней нет, в какой-то сторонней видел ...а, в радиолюбительской утилите, микс-W что-ли.
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 16:07
Дак вот и проблема, что струна даёт несколько гармоник, анализатор выдаёт не основную а максимальную. Как то исправить надо
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 16:28
...если струна выдает несколько гармоник, то у нее по факту нет основного тона, кроме максимальной гармоники по амплитуде. Иного не дано, считайте это формантой. Голосовые связки тоже не чистую синусоиду генерируют, а набор характерных гармоник - формант (спектральный слепок).

Так и не услышал, проверяли ли сторонними анализаторами эти струны?
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 18:04
Погонял струны тут http://ispectrometer.com/
На скринах:
нота ми Е на 4 струне 2 лад, определяется как максимум. Всё в порядке:
Вложение 274824
нота ля A на 5 струне открытой. В момент дергания струны очень повышается и сам сигнал и вторая гармоника, таким образом максимум не даёт нам истинный результат, а даёт удвоенный (не 110 а 220 что я и говорил)
Вложение 274825
нота ми на 6 струне открытой. Тут даже две гармоники громче, чем основная частота:
Вложение 274826
Вот и получается, что спектр нужно как то анализировать по другому, а не просто по максимуму.
Программа oTuner в открытых кодах, она работает отлично. Может там (и во всех программах тюнерах) хитрый метод определения? Значит там не простой максимум, а специальный анализ результатов. Что можно предпринять?

(скрины не прикрепились)
Миниатюры
Как узнать частоту звука?   Как узнать частоту звука?   Как узнать частоту звука?  

0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 18:57
В момент дергания струны очень повышается и сам сигнал и вторая гармоника, таким образом максимум не даёт нам истинный результат, а даёт удвоенный
знаете почему раньше я говорил за сонограмму? Чтобы увидеть в реальном времени распределение спектра. Вот вы наскринили срезы спектров, в то же время уже словами рассказываете что в момент "дерганья струны" происходит ошибка определения. А что в этот момент показывает itune и, главное, сразу ли показывает? Что происходит в следующий момент, после дерганья все нормализуется? Вот этого я и не вижу в разные моменты времени без сонограммы.

Спектр не виноват, он честно показывает то, что идет на самом деле. Вот постобработка эту "честность" для удобства пользователя может скрывать с глаз. К примеру, усреднение по времени. Если все нормализуется после дерганья, пусть не сразу, пусть через миллисекунд 100-500, то не приходила мысль вам, что ПО itune врет? Т.е. усредняет, сглаживает результат? Вот как то так, при данной представленной вами информации, такие выводы.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
29.05.2013, 19:28
Rem_, а если брать несколько локальных максимумов гармоник и из них уже выбирать с наименьшей частотой? Ведь по идее взятая струна не имеет себе подобных гармоник с частотой НИЖЕ, чем взятый тон?
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 19:43
Сонограммы потом, я впервые слышу это слово по изучать надо.

Voland_, я пробовал брать два пика и учитывать левый. На самых басах не работало. Вот только что разобрался, что придётся брать три. Вопрос в том, не придется ли брать четыре.

Не может ли кто-нибудь посмотреть исходники http://sourceforge.net/projects/otuner или http://sourceforge.net/projects/lstune как у них определяют основной тон?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 19:56
Сонограммы потом, я впервые слышу это слово по изучать надо.
вам то может и потом, а нам как увидеть? Наощупь догадаться про поведение системы?

сонограммы

почитать http://www.sevin.ru/vertebrate... /706V.html
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 20:51
Tartini. Пятая открытая струна. Шестая открытая струна. Основная нота затухает, гармоники затухают слабее. Но на клавишах видно, что нота определяется правильно, не по максимуму.
Миниатюры
Как узнать частоту звука?   Как узнать частоту звука?  
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 21:13
Тогда набирайте статистику. Какая по счету основная в разных случаях, минимальная ли по частоте из всех максимумов и прочее.

Не может ли кто-нибудь посмотреть исходники http://sourceforge.net/projects/otuner или http://sourceforge.net/projects/lstune как у них определяют основной то
а сами?
0
31 / 31 / 5
Регистрация: 05.02.2013
Сообщений: 245
Записей в блоге: 8
29.05.2013, 21:52
Есть идея. Сначала как обычно определяем максимум. А вот потом нужно проанализировать частоту на октаву ниже! Если там есть пик, значит нота ниже. Если нету там пика, значит максимальная амплитуда и есть искомая нота. Какой алгоритм придумать для анализа низкой ноты? На общий уровень амплитуды, или амплитуда относительно близко расположенных нот?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
29.05.2013, 22:06
...логично. Действовать по аналогии, как я реализовывал поиск двух частот DTMF последовательности в спектре:


Сначала найти позицию (частоту) главного максимума, потом двигаться вниз (у меня в оба прохода было и вверх и вниз по спектру) по частотам (массиву) и искать следующий максимум (т.е. сравнивать текущее значение амплитуды с предыдущим, если стало расти - искать максимум, просто присваивать максимальное после начала роста), сравнить с определенной заданной погрешностью с октавной частотой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.05.2013, 22:06

Как узнать частоту, амплетуду, длинну и т.д. звука в данный момент?
Здравствуйте! Как узнать частоту, амплетуду, длинну, скорость и т.д. звука в данный момент? ВОТ загрузил компонент(delphi new audio...

Как получить частоту звука?
Здравствуйте! как получить частоту звука? MediaPlayer1.FileName := 'sound.mp3'; if MediaPlayer1.Media &lt;&gt; nil then begin...

Как узнать частоту процессора?
Подскажите как узнать частоту процессора?

Как узнать частоту прцессора?
Как узнать частоту прцессора?

Как узнать начальную частоту?
собственно говоря для моей gtx 460 по сайту нвидии стандартная частота ядра 675, памяти - 1800. Так все и было, пока не зашел в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru