Как делают Вы “получаете его” когда дело доходит до доказательств? [закрытый]

Просто поместите многомерные массивы, подобны таблице в DBMS.
Массив Массива (зубчатый массив) позволяет, Вы иметь каждый элемент держите другой массив того же типа переменной длины.

Так, если Вы уверены, что структура данных похожа на таблицу (зафиксированные строки/столбцы), можно использовать многомерный массив. Зубчатый массив является зафиксированными элементами & каждый элемент может содержать массив переменной длины

, Например, Psuedocode:

int[,] data = new int[2,2];
data[0,0] = 1;
data[0,1] = 2;
data[1,0] = 3;
data[1,1] = 4;

Думают о вышеупомянутом как 2x2 таблица:

1 | 2
3 | 4
int[][] jagged = new int[3][]; 
jagged[0] = new int[4] {  1,  2,  3,  4 }; 
jagged[1] = new int[2] { 11, 12 }; 
jagged[2] = new int[3] { 21, 22, 23 }; 

Думают о вышеупомянутом как о каждой строке, имеющей переменное число столбцов:

 1 |  2 |  3 | 4
11 | 12
21 | 22 | 23
17
задан 3 revs, 2 users 100% 27 August 2009 в 12:45
поделиться

7 ответов

Они не ленивы, практика - единственный выход. Возьмите уроки, на которых вы должны делать корректуры, и поищите в Интернете конспекты и старые тесты с ответами из других колледжей, которые не учитывают доказательства.

9
ответ дан 30 November 2019 в 12:51
поделиться

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

Учебники очень любят выписывать «важные» доказательства. Это очень приятно, потому что они часто оказываются очень сильными утверждениями и действительно красивы. Но точно так же, как вы не должны учиться быть гимнастом мирового класса с первого дня, подражая олимпийцу (например, вы, вероятно, сломаете себе позвоночник), вы не должны читать никаких действительно серьезных доказательств (сначала). Что мне показалось полезным, так это чтение небольших корректур, обычно из возвращенных домашних заданий (я предполагаю, что вы студент) или иногда из учебника, который поумнел.

Причина , по которой я считаю, что чтение доказательств полезно, заключается в том, что существует небольшой набор «уловок» или «идей», составляющих огромные блоки доказательств школьных работ, и даже более сложных. Качества структуры данных и рекуррентные отношения обычно связаны с мышлением, связанным с доказательством индукции , доказательства, связанные с вычислимостью с помощью конечных автоматов, иногда используют принцип голубятни , и реже идея диагонализации (очень редко, не беспокойтесь об этом). И, конечно же, почти каждое второе доказательство использует доказательство от противоречия . Я уверен, что есть и другие удобные инструменты, которые мне не приходили в голову, но я надеюсь, что вы уловили идею.

Выяснение, когда, как и почему вы? Подходить к проблеме тем или иным методом - вот что требует практики и опыта. Я предлагаю читать доказательства в дополнение к практике, потому что они часто могут показать вам творческие способы использования метода доказательства, с которым вы уже столкнулись.

В заключение, постарайтесь вспомнить, когда вы впервые научились программировать. Как тебе стало лучше? На мой взгляд, доказательство и программирование не слишком отличаются друг от друга. :)

6
ответ дан 30 November 2019 в 12:51
поделиться

I'll start off my answer by admitting that as a CS student, I had a really tough time grasping a formal way of thinking, and it's never easy, unless you have a talent for it.

I'm afraid there is no better answer than practice and study.

A formal mathematical and algorithmic way of thinking and visioning problems is a skill which first demands a very deep understanding of the subjects you are dealing with. Second, it requires you have good knowledge of existing proofs. Try to envision yourself as some of the great scientists who came up with the algorithms you are studying. Understand how you would have tried to tackle that specific problem. Then see how they proved the correctness of their algorithm.

I can only recommend the greatest textbook in this subject which is Intro to Algorithms by CLRS. If you go through it from start to finish, including every exercise, you will enhance your skills.

8
ответ дан 30 November 2019 в 12:51
поделиться

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

Я вхожу в разум, проводя доказательства и заставляя их принимать другие математики. Я согласен с другими, что «практика» важна. Вы не делаете доказательств, пока не попробуете, попробуете и попробуете. Часто свет заходит медленно.

Лучшие ресурсы, конечно, - это другие математики и доказательства для чтения. Очень немногие, если таковые имеются, могут проводить истинные математические доказательства, не будучи частью математического сообщества.

3
ответ дан 30 November 2019 в 12:51
поделиться

Понятия не имею. Наверное, так же, как ты научишься сочинять музыку.

Когда я пытаюсь доказать что-то, я не придерживаюсь какой-то фиксированной стратегии, я просто думаю о проблеме. Затем [неопределенное количество времени] спустя мой разум возвращает результат, и я вскакиваю, чтобы записать его.

Но практика определенно помогает. Когда я начал доказывать чрезвычайно простые утверждения, вроде законов ДеМоргана, я был полностью безнадежен. Я сел и выполнил около пятидесяти необязательных примеров задач на листе, который нам дали. Теперь кажется естественным что-то доказывать.

0
ответ дан 30 November 2019 в 12:51
поделиться

Practice and study makes perfect sense, agreed. Some tricks, that I found useful:

  1. Make notes on everything you study (I've tried just to read books -- a lot of material just passes through).
  2. In addition to previous point: do all (or most) proofs by youself, use book/lecture notes as a guide; a lot of proofs contains phrases like "we can see now, that XXX". And XXX is not always trivial conclusion.
  3. Make exercises; for example, in CLRS book there are dozens of exercises. Exercises are good way to get the ideas behind algorithms/correct proofs.
  4. If you want to better understand the internals of algorithm -- consider participating in online programming contests like UVa's.
0
ответ дан 30 November 2019 в 12:51
поделиться

В дополнение к многопроцессорной обработке существует также проект Celery , если вы используете Django.

вы находите шаблоны, которые особенно хорошо решают проблемы, и можете создать картину высокоуровневого дизайна новых систем, который вы никогда раньше не реализовывали. Однако начинающие программисты не знают шаблонов: они взламывают код, пока случайно не наткнутся на какое-то решение, которое, кажется, «работает».

Когда вам дают задачу доказать, вы обычно можете определить свойства (" Есть ли у меня набор отдельных объектов? »,« Я генерирую перестановки? »,« Я хочу минимизировать / максимизировать какое-то значение? »И т. Д.). Рано или поздно доказательства сгруппируются в несколько схожую группу, где методы, используемые для решения одной проблемы, можно легко применить к новым вариациям.

Рекомендуемая литература:

2
ответ дан 30 November 2019 в 12:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: