Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
15.06.2014
Размер:
2.11 Кб
Скачать
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <iostream.h>

#define n 500		// MAX количество точек апроксимации начальной функции плотности

void main (void) 
{
	float tmp;				// временная переменная
	
	//-- Величина прирощения функции
	int mashtab=150;		// !!!!варьировать осторожно!!! м.б. пустой массив
	
	float shag_izmen=0.001f; // шаг изменения значения св
	float y_min=0;			// минимальное значение св
	float y_real;			// текущее значение св
	int i=0;				// счетчик итераций
	int j=0;				// счетчик итераций

	float mas_y[2][n];  // массив значений функции плотности и её переменной 
	float mas_bsv[n];// массив значений БСВ

	FILE *f1;

	srand((unsigned)time(NULL));

	//--- Генерция БСВ ---
	for (i=0, tmp=0; i<n; i++)
	{
		tmp=(float)(rand()%100);
		tmp/=99;
		mas_bsv[i]=tmp;
	}
	//--- Конец генерции БСВ ---

	//--- Генерация функции плотности по точкам апроксимации ---
	for (i=0, y_real=y_min, tmp=0; i<n; i++, y_real+=shag_izmen) {
		tmp=(float)(rand()%100);
		tmp/=mashtab;
		mas_y[0][i]=y_real;
		if (i==0) {
			mas_y[1][i]=0;
		} else {
			if ((mas_y[1][i-1]-tmp)<0.00000001) { // делаем вероятность неотрицательной
				mas_y[1][i]=mas_y[1][i-1]+tmp;
			} else {
				if (mas_bsv[i]>0.50){			// делаем равновероятностным возрастание или убывание функции
					mas_y[1][i]=mas_y[1][i-1]+tmp;
				} else {
					mas_y[1][i]=mas_y[1][i-1]-tmp;
				}
			}
		}
	}
	//--- Конец генерации функции плотности ---

	//--- Вывод в файл file1.txt -------------------------------------
	//----------------------------------------------------------------
	//-- Первый столбец = значения случайной величины               --
	//-- Второй столбец = вероятность этой сл. величины             --
	//----------------------------------------------------------------
	if((f1=fopen("file1.txt","w+"))==NULL) {
		printf("NO!!!\n");
	} else {
		for(i=0; i<n; i++) {
			fprintf(f1,"%f %f\n",mas_y[0][i],mas_y[1][i]);
		}
		fclose(f1);
	}
	//--- Конец вывода в файл file1.txt ------------------------------
}
Соседние файлы в папке Generator of function
  • #
    15.06.20144.45 Кб15Generator of function.dsp
  • #
    15.06.2014567 б15Generator of function.dsw
  • #
    15.06.201441.98 Кб15Generator of function.ncb
  • #
    15.06.201448.64 Кб15Generator of function.opt
  • #
    15.06.2014938 б15Generator of function.plg
  • #
    15.06.20142.11 Кб15gen_fun.cpp