Алгоритм и программа расчета числа сочетаний для больших чисел без вычисления промежуточных факториалов путем их разложения на простые множители и сокращений

Проведение исследования классической комбинаторной формулы для расчета числа сочетаний. Характеристика формирования массива цифр знаменателя и числителя. Главная особенность промежуточного вычисления факториалов, используемых в языках программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 22.05.2017
Размер файла 184,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

АЛГОРИТМ И ПРОГРАММА РАСЧЕТА ЧИСЛА СОЧЕТАНИЙ ДЛЯ БОЛЬШИХ ЧИСЕЛ БЕЗ ВЫЧИСЛЕНИЯ ПРОМЕЖУТОЧНЫХ ФАКТОРИАЛОВ ПУТЕМ ИХ РАЗЛОЖЕНИЯ НА ПРОСТЫЕ МНОЖИТЕЛИ И СОКРАЩЕНИЙ

В Internet встречается задача: «Найти все комбинации m по n, при этом m и n могут быть очень большими числами, вплоть до нескольких десятков тысяч» и предлагаются различные методы ее решения, в том числе и верные, т.е. работающие [1]. Существуют также on-line калькуляторы факториалов [2] и числа сочетаний [3]. Проблема возникает потому, что при использовании классической комбинаторной формулы числа сочетаний:

,

где: n - число элементов в исходном множестве; m - число элементов в подсистеме, для расчета числа сочетаний необходимо предварительно рассчитать значения факториалов, а они в большинстве языков программирования могут быть рассчитаны для значений аргумента, не превосходящим 170, а иногда и еще меньше, например 30.

Для решения этой проблемы предлагается следующий алгоритм, отличающийся от имеющихся в Internet:

1. Найти все простые числа меньшие заданного параметра n.

2. Сформировать массив чисел числителя.

3. Сформировать массив простых сомножителей чисел числителя.

4. Сформировать массив чисел знаменателя.

5. Сформировать массив простых сомножителей чисел знаменателя.

6. Сформировать массив простых сомножителей числителя, не входящих в массив простых сомножителей знаменателя.

7. Перемножить массив уникальных простых сомножителей числителя.

На рисунках 1 и 2 приводятся экранные формы для задания параметров расчета числа сочетаний для расчета одного значения и массива значений:

Рисунок 1. Экранная форма для задания расчета одного значения числа сочетаний

Рисунок 2. Экранная форма для задания расчета массива значений числа сочетаний

На рисунке 3 и в таблице 1 приведены результаты расчетов:

Рисунок 3. Результат расчета значения числа сочетаний

Отметим, что далеко не каждый on-line калькулятор позволяет посчитать число сочетаний из 10000 по 5, который без проблем рассчитывается по предложенному алгоритму прилагаемой программой. Это говорит о том, что предлагаемый алгоритм может быть востребован. Но вот, например, сайт Вольфрам-математики [3], дает тот же результат: 832500291625002000.

Таблица 1 - Пример расчета числа сочетаний при различных значениях n и m

N

M1

M2

M3

M4

M5

M6

M7

M8

M9

M10

M11

N1

1

N2

2

1

N3

3

3

1

N4

4

6

4

1

N5

5

10

10

5

1

N6

6

15

20

15

6

1

N7

7

21

35

35

21

7

1

N8

8

28

56

70

56

28

8

1

N9

9

36

84

126

126

84

36

9

1

N10

10

45

120

210

252

210

120

45

10

1

N11

11

55

165

330

462

462

330

165

55

11

1

N12

12

66

220

495

792

924

792

495

220

66

12

N13

13

78

286

715

1287

1716

1716

1287

715

286

78

N14

14

91

364

1001

2002

3003

3432

3003

2002

1001

364

N15

15

105

455

1365

3003

5005

6435

6435

5005

3003

1365

N16

16

120

560

1820

4368

8008

11440

12870

11440

8008

4368

N17

17

136

680

2380

6188

12376

19448

24310

24310

19448

12376

N18

18

153

816

3060

8568

18564

31824

43758

48620

43758

31824

N19

19

171

969

3876

11628

27132

50388

75582

92378

92378

75582

N20

20

190

1140

4845

15504

38760

77520

125970

167960

184756

167960

N21

21

210

1330

5985

20349

54264

116280

203490

293930

352716

352716

N22

22

231

1540

7315

26334

74613

170544

319770

497420

646646

705432

N23

23

253

1771

8855

33649

100947

245157

490314

817190

1144066

1352078

N24

24

276

2024

10626

42504

134596

346104

735471

1307504

1961256

2496144

N25

25

300

2300

12650

53130

177100

480700

1081575

2042975

3268760

4457400

N26

26

325

2600

14950

65780

230230

657800

1562275

3124550

5311735

7726160

N27

27

351

2925

17550

80730

296010

888030

2220075

4686825

8436285

13037895

N28

28

378

3276

20475

98280

376740

1184040

3108105

6906900

13123110

21474180

N29

29

406

3654

23751

118755

475020

1560780

4292145

10015005

20030010

34597290

N30

30

435

4060

27405

142506

593775

2035800

5852925

14307150

30045015

54627300

N31

31

465

4495

31465

169911

736281

2629575

7888725

20160075

44352165

84672315

N32

32

496

4960

35960

201376

906192

3365856

10518300

28048800

64512240

129024480

N33

33

528

5456

40920

237336

1107568

4272048

13884156

38567100

92561040

193536720

N34

34

561

5984

46376

278256

1344904

5379616

18156204

52451256

131128140

286097760

N35

35

595

6545

52360

324632

1623160

6724520

23535820

70607460

183579396

417225900

N36

36

630

7140

58905

376992

1947792

8347680

30260340

94143280

254186856

600805296

N37

37

666

7770

66045

435897

2324784

10295472

38608020

124403620

348330136

854992152

N38

38

703

8436

73815

501942

2760681

12620256

48903492

163011640

472733756

1203322288

N39

39

741

9139

82251

575757

3262623

15380937

61523748

211915132

635745396

1676056044

N40

40

780

9880

91390

658008

3838380

18643560

76904685

273438880

847660528

2311801440

N41

41

820

10660

101270

749398

4496388

22481940

95548245

350343565

1121099408

3159461968

N42

42

861

11480

111930

850668

5245786

26978328

118030185

445891810

1471442973

4280561376

N43

43

903

12341

123410

962598

6096454

32224114

145008513

563921995

1917334783

5752004349

N44

44

946

13244

135751

1086008

7059052

38320568

177232627

708930508

2481256778

7669339132

N45

45

990

14190

148995

1221759

8145060

45379620

215553195

886163135

3190187286

10150595910

N46

46

1035

15180

163185

1370754

9366819

53524680

260932815

1101716330

4076350421

13340783196

N47

47

1081

16215

178365

1533939

10737573

62891499

314457495

1362649145

5178066751

17417133617

N48

48

1128

17296

194580

1712304

12271512

73629072

377348994

1677106640

6540715896

22595200368

N49

49

1176

18424

211876

1906884

13983816

85900584

450978066

2054455634

8217822536

29135916264

N50

50

1225

19600

230300

2118760

15890700

99884400

536878650

2505433700

10272278170

37353738800

N51

51

1275

20825

249900

2349060

18009460

115775100

636763050

3042312350

12777711870

47626016970

N52

52

1326

22100

270725

2598960

20358520

133784560

752538150

3679075400

15820024220

60403728840

N53

53

1378

23426

292825

2869685

22957480

154143080

886322710

4431613550

19499099620

76223753060

Ниже приводится исходный текст программы на языке программирования xBase++: массив знаменатель числитель программирование

(C) Расчет числа сочетаний для больших чисел без промежуточного расчета факториалов путем разложения их на простые множители и сокращения, beta-version, rel: 12.06.2013

(C) д.э.н., к.т.н., профессор Луценко Евгений Вениаминович, Россия, Краснодар.

PROCEDURE AppSys

// Рабочий стол остается окном приложения

RETURN

FUNCTION Main()

LOCAL GetList[0], GetOptions, nColor, oMessageBox, oMenuWords, oDlg, ;

oMenuBar,oMenu1,oMenu2,oMenu3,oMenu4,oMenu5,oMenu6,oMenu7,; oMenu3_3

DC_IconDefault(1000)

SET DECIMALS TO 15

SET DATE GERMAN

SET ESCAPE On

SET COLLATION TO SYSTEM // Руссификация

*SET COLLATION TO ASCII // Руссификация

PUBLIC aSay[30], Mess97, Mess98, Mess99 // Массив сообщений отображаемых стадий исполнения (до 30 на экране)

PUBLIC Time_progress, Wsego, oProgress, lOk

PUBLIC nEvery := 100 // Количество корректировок прогресс-бар

g = 0

s = 0

mRegim = 1

@g , 0 DCGROUP oGroup1 CAPTION 'Задайте вариант использования программы:' SIZE 62.0, 7.0

@++s, 2 DCRADIO mRegim VALUE 1 PROMPT 'Расчет одного конкретного значения числа сочетаний из N по M' PARENT oGroup1

@++s, 2 DCRADIO mRegim VALUE 2 PROMPT 'Расчет таблицы значений числа сочетаний для диапазонов N и M' PARENT oGroup1

s = 3

mN1 = 30

mM1 = 2

@++s+0.2,12 DCSAY "Задайте значение N:" EDITPROTECT {||.NOT.mRegim=1} HIDE {||.NOT.mRegim=1} PARENT oGroup1

@ s ,27 DCSAY "" GET mN1 PICTURE "#######" EDITPROTECT {||.NOT.mRegim=1} HIDE {||.NOT.mRegim=1} PARENT oGroup1

@++s+0.2,12 DCSAY "Задайте значение M:" EDITPROTECT {||.NOT.mRegim=1} HIDE {||.NOT.mRegim=1} PARENT oGroup1

@ s ,27 DCSAY "" GET mM1 PICTURE "#######" EDITPROTECT {||.NOT.mRegim=1} HIDE {||.NOT.mRegim=1} PARENT oGroup1

s = 3

N1 = 1

N2 = 30

M1 = 1

M2 = N2

@++s+0.2, 5 DCSAY "Задайте диапазон значений N:" EDITPROTECT {||.NOT.mRegim=2} HIDE {||.NOT.mRegim=2} PARENT oGroup1

@ s ,27 DCSAY "" GET N1 PICTURE "#######" EDITPROTECT {||.NOT.mRegim=2} HIDE {||.NOT.mRegim=2} PARENT oGroup1

@ s ,37 DCSAY "" GET N2 PICTURE "#######" EDITPROTECT {||.NOT.mRegim=2} HIDE {||.NOT.mRegim=2} PARENT oGroup1

@++s+0.2, 5 DCSAY "Задайте диапазон значений M:" EDITPROTECT {||.NOT.mRegim=2} HIDE {||.NOT.mRegim=2} PARENT oGroup1

@ s ,27 DCSAY "" GET M1 PICTURE "#######" EDITPROTECT {||.NOT.mRegim=2} HIDE {||.NOT.mRegim=2} PARENT oGroup1

@ s ,37 DCSAY "" GET M2 PICTURE "#######" EDITPROTECT {||.NOT.mRegim=2} HIDE {||.NOT.mRegim=2} PARENT oGroup1

DCGETOPTIONS TABSTOP

DCREAD GUI ;

FIT ;

OPTIONS GetOptions ;

ADDBUTTONS;

MODAL ;

TITLE '(C) Луценко Е.В. Расчет сочетаний для больших чисел'

IF mRegim = 1

oScr := DC_WaitOn()

Mess := {}

IF mN1 <= 21

AADD(Mess, "Число сочетаний из N=# по M=$ по классической формуле с факториалами: С(n,m) = n! / ( m! ( n-m )! ) = "+ALLTRIM(STR(INT(Cf(mN1,mM1)))))

ELSE

AADD(Mess, "Число сочетаний из N=# по M=$ по формуле с факториалами: С(n,m)=n!/(m!(n-m)!) не может быть рассчитано !")

ENDIF

AADD(Mess, "Число сочетаний из N=# по M=$ по алгоритму с сокр.простых множителей: С(n,m) = P(m+1,n)/P(1,n-m) = "+C(mN1,mM1))

AADD(Mess, "где: P(a,b)=a*(a+1)*(a+2)*...*b: произведение целых чисел от a до b с шагом 1")

DC_Impl(oScr)

Mess[1] = STRTRAN(Mess[1], "#", ALLTRIM(STR(mN1,15)))

Mess[1] = STRTRAN(Mess[1], "$", ALLTRIM(STR(mM1,15)))

Mess[2] = STRTRAN(Mess[2], "#", ALLTRIM(STR(mN1,15)))

Mess[2] = STRTRAN(Mess[2], "$", ALLTRIM(STR(mM1,15)))

LB_Warning(Mess, "(C) Луценко Е.В. Расчет числа сочетаний для больших чисел" )

ENDIF

IF mRegim = 2

aStructure := { { "N", "C", 15, 0} }

FOR j=N1 TO N2

FieldName = "M"+ALLTRIM(STR(j,21))

AADD(aStructure, { FieldName, "C", 250, 0 })

NEXT

DbCreate( "Cnm.dbf" , aStructure )

nMax = 0;FOR mn=N1 TO N2;FOR mm=1 TO mn;++nMax;NEXT;NEXT

Mess = 'Расчет числа сочетаний из n по m'

@ 4,5 DCPROGRESS oProgress SIZE 70,1.1 MAXCOUNT nMax COLOR GRA_CLR_CYAN PERCENT EVERY 100

DCREAD GUI TITLE Mess PARENT @oDialog FIT EXIT

oDialog:show()

nTime = 0

CLOSE ALL

USE Cnm EXCLUSIVE NEW

SELECT Cnm

DC_GetProgress(oProgress,0,nMax)

FOR mn = N1 TO N2

APPEND BLANK

FIELDPUT(1, "N"+ALLTRIM(STR(mn,21)))

FOR mm = 1 TO mn

FIELDPUT(1+mm, C(mn,mm))

DC_GetProgress(oProgress, ++nTime, nMax)

NEXT

NEXT

DC_GetProgress(oProgress,nMax,nMax)

oDialog:Destroy()

Mess := {}

AADD(Mess, 'Результаты расчета числа сочетаний C(n,m) в базе данных Cnm.dbf')

AADD(Mess, 'Из-за большой размерности числа в БД Cnm.dbf представлены в текстовом формате')

AADD(Mess, 'Заданием в MS Excel формата ячеек "числовой" они преобразутся в числовой формат')

LB_Warning(Mess, "(C) Луценко Е.В. Расчет числа сочетаний для больших чисел")

ENDIF

CLOSE ALL

RETURN NIL

С(n,m) = n! / (m! (n - m)!) число сочетаний из n по m

FUNCTION Cf(n,m)

RETURN(Fact(n)/(Fact(m)*Fact(n-m)))

С(n,m) = n! / (m! (n - m)!) число сочетаний из n по m для больших чисел без вычисления промежуточных факториалов путем разложения

факториалов на простые множители и их сокращений

С(n,m) = P(m+1,n) / P(1,n-m), где P(a,b) произведение целых чисел от a до b с шагом 1

1. Найти все простые числа меньшие n

2. Сформировать массив чисел числителя

3. Сформировать массив простых сомножителей числителя

4. Сформировать массив чисел знаменателя

5. Сформировать массив простых сомножителей чисел знаменателя

6. Сформировать массив простых сомножителей числителя, не входящих в массив простых сомножителей знаменателя

7. Перемножить массив уникальных простых сомножителей числителя

FUNCTION C(n,m)

1. Найти все простые числа меньшие n, включая 1 и допуская n=1 aPrCh := {} // Массив простых чисел

IF n = 1

AADD(aPrCh, 1)

ELSE

FOR j = 2 TO n

Проверка, является ли j простым числом

Flag = .T.

FOR i=2 TO j-1

IF j=i*INT(j/i) // Делится ли j на i нацело?

Flag = .F.

EXIT

ENDIF

NEXT

IF Flag

AADD(aPrCh, j)

ENDIF

NEXT

ENDIF

* DC_DebugQout( aPrCh )

2. Сформировать массив чисел числителя

aChis := {}

IF m = n

AADD(aChis, 1)

ELSE

IF m < n

FOR j=m+1 TO n

AADD(aChis, j)

NEXT

ENDIF

ENDIF

DC_DebugQout( aChis )

3. Сформировать массив простых сомножителей числителя

aPSChis := {}

FOR i=1 TO LEN(aChis)

***** Разложить число на простые множители

aPrMn := {} // Массив простых множителей числа: Chislo

Chislo = aChis[i]

IF Chislo = 1

AADD(aPrMn,1)

ELSE

Flag = .T.

DO WHILE Flag

FOR j=1 TO LEN(aPrCh)

**** Проверка, делится ли Chislo на простое число из массива aPrCh

Flag = .F.

IF Chislo = aPrCh[j] * INT(Chislo/aPrCh[j])

AADD(aPrMn,aPrCh[j])

Chislo = Chislo/aPrCh[j]

Flag = .T.

EXIT

ENDIF

NEXT

ENDDO

ENDIF

***** Занести простые множители числа aChis[j] в массив простых сомножителей числителя

FOR j=1 TO LEN(aPrMn)

AADD(aPSChis, aPrMn[j])

NEXT

NEXT

* DC_DebugQout( aPSChis )

***** 4. Сформировать массив чисел знаменателя

aZnam := {}

IF m = n

AADD(aZnam, 1)

ELSE

IF m < n

FOR j=1 TO n - m

AADD(aZnam, j)

NEXT

ENDIF

ENDIF

* DC_DebugQout( aZnam )

******* 5. Сформировать массив простых сомножителей чисел знаменателя

aPSZnam := {}

FOR i=1 TO LEN(aZnam)

***** Разложить число на простые множители

aPrMn := {} // Массив простых множителей числа: Chislo

Chislo = aZnam[i]

IF Chislo = 1

AADD(aPrMn,1)

ELSE

Flag = .T.

DO WHILE Flag

FOR j=1 TO LEN(aPrCh)

**** Проверка, делится ли Chislo на простое число из массива aPrCh

Flag = .F.

IF Chislo = aPrCh[j] * INT(Chislo/aPrCh[j])

AADD(aPrMn,aPrCh[j])

Chislo = Chislo/aPrCh[j]

Flag = .T.

EXIT

ENDIF

NEXT

ENDDO

ENDIF

*** Занести простые множители числа aZnam[j] в массив простых сомножителей знаменателя

FOR j=1 TO LEN(aPrMn)

AADD(aPSZnam, aPrMn[j])

NEXT

NEXT

* DC_DebugQout( aPSZnam )

******** 6. Сформировать массив простых сомножителей числителя,

******** не входящих в массив простых сомножителей знаменателя

aPS:= {}

FOR j=1 TO LEN(aPSChis)

Pos = ASCAN(aPSZnam, aPSChis[j])

IF Pos = 0

AADD(aPS, aPSChis[j])

ELSE

aPSZnam[Pos] = 1 // Сокращение простых сомножителей числителя и знаменателя

ENDIF

NEXT

* DC_DebugQout( aPS )

******** 7. Перемножить массив уникальных простых сомножителей числителя и знаменателя

mMulChis = 1

FOR j=1 TO LEN(aPS)

mMulChis = mMulChis * aPS[j]

NEXT

mMulZnam = 1

FOR j=1 TO LEN(aPSZnam)

mMulZnam = mMulZnam * aPSZnam[j]

NEXT

DC_DebugQout( mMulChis, mMulZnam, mMulChis/mMulZnam )

RETURN(ALLTRIM(STR(mMulChis/mMulZnam,250)))

FUNCTION LB_Warning( message, ctitle )

LOCAL aMsg := {}

DEFAULT cTitle TO ''

IF valtype(message) # 'A'

aadd(aMsg,message)

ELSE

aMsg := message

ENDIF

IF LEN(ALLTRIM(cTitle)) > 0

DC_MsgBox( ,,aMsg,cTitle)

ELSE

DC_MsgBox( ,,aMsg,'Универсальная когнитивная аналитическая система "Эйдос-Х++"')

ENDIF

Выводы

Материалы данной статьи могут быть использованы в учебном процессе при преподавании дисциплин: «Алгоритмы и структуры данных», «Дискретная математика», «Численные методы», «Основы статистики и комбинаторики» и других.

Аннотация

АЛГОРИТМ И ПРОГРАММА РАСЧЕТА ЧИСЛА СОЧЕТАНИЙ ДЛЯ БОЛЬШИХ ЧИСЕЛ БЕЗ ВЫЧИСЛЕНИЯ ПРОМЕЖУТОЧНЫХ ФАКТОРИАЛОВ ПУТЕМ ИХ РАЗЛОЖЕНИЯ НА ПРОСТЫЕ МНОЖИТЕЛИ И СОКРАЩЕНИЙ

Луценко Евгений Вениаминович д.э.н., к.т.н., профессор

Кубанский государственный аграрный университет, Россия, 350044, Краснодар, Калинина, 13,

Классическая комбинаторная формула для расчета числа сочетаний из n по m: C(n,m)=n!/(m!(n-m)!) предполагает промежуточный расчет факториалов, что чаще всего невозможно при n>170 из-за ограничений в разрядности чисел, используемых в языках программирования и созданных помощью них системах. Однако, в ряде случаев необходимо произвести расчет числа сочетаний при n и m значительно превосходящих это ограничение, например при их значениях больше 10000. В подобных случаях возникает определенная проблема, проявляющаяся, например в том, что многие on-line сервисы по расчету числа сочетаний при таких параметрах не работают. В данной статье предлагается ее решение в виде алгоритма и программной реализации. Суть подхода состоит в том, чтобы сначала разложить факториалы на простые множители и сократить их, а уже потом уже производить умножения. Этот подход отличается от приводимых в Internet

Ключевые слова: АВТОМАТИЗИРОВАННЫЙ СИСТЕМНО-КОГНИТИВНЫЙ АНАЛИЗ, ИНТЕЛЛЕКТУАЛЬНАЯ СИСТЕМА «ЭЙДОС», ЧИСЛО СОЧЕТАНИЙ ИЗ N ПО M ДЛЯ БОЛЬШИХ ЧИСЕЛ

AN ALGORITHM AND A PROGRAM FOR CALCULATING THE NUMBER OF COMBINATIONS FOR LARGE NUMBERS WITHOUT CALCULATING THE INTERMEDIATE FACTORIALS BY THEIR DECOMPOSITION INTO PRIME FACTORS AND ABBREVIATIONS

Lutsenko Evgeny Veniaminovich Dr.Sci.Econ., Cand.Tech.Sci., professor

Kuban State Agrarian University, Krasnodar, Russia

Classical combinatorial formula to calculate the number of combinations from n on m: C(n,m)=n!/(m!(n-m)!) involves the intermediate calculation of factorials, which is often impossible when n>170, due to limitations in the capacity of numbers that are used in programming languages and created through these systems. However, in some cases it is necessary to calculate the number of combinations for n and m much larger than this limit, such as when a value greater than 10000. In such cases, there is a definite problem, which manifests itself, for example in the fact that many on-line services meant to calculate the number of combinations with these parameters do not work properly. In this article, we present its solution in the form of an algorithm and software implementation. The essence of the approach is to first decompose the factorials into prime factors and reduce them, and then to produce multiplication. This approach differs from those cited in the Internet

Keywords: AUTOMATED SYSTEM-COGNITIVE ANALYSIS, "EIDOS" INTELLECTUAL SYSTEM, NUMBER OF COMBINATIONS FROM N ON M FOR LARGE NUMBERS

Размещено на Allbest.ru

...

Подобные документы

  • Выбор структуры класса больших целых чисел, их сравнительная характеристика и описание преимуществ, недостатков. Реализация метода перемножения двух больших чисел, возведения числа в степень и взятия факториала числа. Режим вычисления выражений.

    курсовая работа [827,2 K], добавлен 19.04.2011

  • Разработка различных программ для вычисления X и Y по формуле, для вычисления интеграла, для вычисления таблицы значений функции и для вычисления элементов вектора. Составление блок-схемы программы. Ввод значений, описание переменных и условия расчета.

    контрольная работа [148,1 K], добавлен 08.11.2013

  • Перевод числа из десятичной системы счисления в двоичную. Результат выполнения в TURBO PASKAL заданных функций и операций. Программа вычисления значений функции на языке PASKAL, блок-схема. Вычисление суммы и произведения всех элементов массива.

    контрольная работа [66,6 K], добавлен 15.02.2013

  • Сущность понятия "комбинаторика". Программа формирования перестановок, сочетаний, размещений с выводом результатов на экран дисплея. Алгоритм программы, написанной на языке Паскаль. Список идентификаторов переменных программы. Список процедур программы.

    лабораторная работа [19,8 K], добавлен 27.07.2010

  • Исходный текст программы и ее экранная форма. Программа вычисления и выдачи на печать суммы/произведения элементов бесконечного числового ряда, вычисления числового ряда для известного числа членов ряда. Значение максимального элемента в матрице.

    контрольная работа [29,0 K], добавлен 07.12.2010

  • Описание подпрограммы SumDigit, находящей сумму цифр S целого числа N. Нахождение суммы цифр данных чисел, используя эту подпрограмму. Алгоритм и код программы, тестовые наборы. Вывод о ее работоспособности. Описание функции RingS вещественного типа.

    лабораторная работа [514,5 K], добавлен 23.11.2014

  • Изучение представления, основных способов расчета для целых положительных, простых чисел и ряда точек, и вычисления путем аппроксимации логарифма гамма-функции. Предоставление функциональных моделей, блок-схем и программной реализации решения задачи.

    курсовая работа [537,9 K], добавлен 25.01.2010

  • Способы сортировки задач программирования: пузырьком, пузырьковая с просеиванием, метод последовательного поиска минимумов, вставками. Распределяющая сортировка - RadixSort-цифровая - поразрядная. Теория чисел. Простые числа. Задача "Красивые числа".

    реферат [90,5 K], добавлен 14.05.2008

  • Рассмотрение методов прямоугольников и трапеций как способов вычисления определенных интегралов. Характеристика графика зависимости погрешности от числа разбиений N. Создание приложения по вычислению интеграла с помощью методов приближенного вычисления.

    курсовая работа [1,6 M], добавлен 20.06.2012

  • Особенности работы в режиме командной строки в системе Matlab. Переменные и присваивание им значений. Комплексные числа и вычисления в системе Matlab. Вычисления с использованием функции sqrt. Неправильное использование функций с комплексными аргументами.

    дипломная работа [1,9 M], добавлен 30.07.2015

  • Разработка алгоритма и программы для вычисления функции, заданной интервально на различных промежутках. Алгоритм и программа формирования одномерного массива по условию, заданной интервально на различных промежутках. Решение нелинейного уравнения.

    курсовая работа [38,3 K], добавлен 17.11.2010

  • Поиск взаимно простых чисел. Алгоритм Евклида для целых чисел. Описание выбранного языка программирования. Алгоритм решения задачи. Обзор средств программирования. Текст и описание программы. Руководство оператора, программа и методика испытаний.

    курсовая работа [843,5 K], добавлен 15.06.2011

  • Принципы разработки математических моделей, алгоритмов и программ. Составление программы вычисления функции с использованием нестандартных функций. Нахождение значения корней нелинейного уравнения по методу касательных. Программа для вычисления интеграла.

    курсовая работа [568,3 K], добавлен 07.03.2015

  • Математический процессор для вычисления элементарных функций. Расчет разрядности представления данных и числа итераций. Разработка алгоритмов вычисления функции в математическом пакете. Обоснование достаточности аппаратных средств, программных ресурсов.

    курсовая работа [615,9 K], добавлен 19.12.2010

  • Вычисление физических параметров реальной электрической цепи посредством преобразования её к эквивалентной. Схема алгоритма программы и ее разработка на языках программирования СИ и С++, результаты расчета зависимостей эквивалентных сопротивлений.

    курсовая работа [19,9 K], добавлен 15.10.2010

  • Определение корней трансцендентного уравнения. Формулы для расчета координат точек графика. Расчет точного значения корня. Решение задачи линейного программирования с использованием Excel. Алгоритм расчета шлицевого соединения с прямобочными шлицами.

    курсовая работа [437,3 K], добавлен 21.03.2016

  • Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.

    лабораторная работа [259,3 K], добавлен 14.05.2011

  • Знакомство с наиболее известными технологиями программирования. Особенности разработки программ для вычисления интеграла по формуле средних прямоугольников. Общая характеристика методов структурного программирования. Рассмотрение формулы Симпсона.

    курсовая работа [1,3 M], добавлен 03.03.2015

  • Составление структурных программ для решения практических задач по теме "Целочисленная арифметика". Алгоритм нахождения делителей натурального числа, алгоритм проверки простое ли число, алгоритм Решета Эратосфена. Система программирования Free Pascal.

    разработка урока [27,1 K], добавлен 03.09.2014

  • Символы, целые, числа с плавающей точкой в языке Си. Машинное представление значений типа char, double, float, беззнаковых чисел. Представление целых чисел в позиционных системах счисления с произвольным основанием. Алгоритм перевода b-ичной записи.

    презентация [296,3 K], добавлен 05.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.