Перегляньте відео нижче, щоб дізнатися, як встановити наш сайт як веб-програму на головному екрані.
Замітка: This feature may not be available in some browsers.
Stqs, выглядит компактно и продуманно, но немного напрягают последние 3-4 числа в каждой строке, они почти всегда одинаковые.
Алгоритм интерсеный - но попять вертикальный. Вас просят рандомизовать по времени, а вы рандомизуете количеству оптимизаций в день. каждый день оптимизировать по 15 раз, а там еще остаток раскидать по дням недели. решение формально верное и адекватное тупому ТЗ. Но вот представьте, что *****ьное ограничение снято, т.е. объемы выборки намного больше 7. Вы тоже будете так же адекватноТЗ (*****ьно) решать?Так нужен "короткий" или быстрый?
Начнем с самого не оптимального варианта "O(n)":
Код:void fun(int count, int min, int max, int* mas, int size) { assert(min*size<=count); for(int i = 0; i<size; i++) mas[i] = min; for(int i=min*size; i<count; i++) { int j = rand()%size; if(mas[j]<max) mas[j]++; else i--; } }
Вот когда прав, то прав. Я тоже ТС сказал - ТЗ по-*****ьному написано.
Achenar, как-то все путанно. рекурсие??
Ну цикл, конечно, обычный цикл.private static IEnumerable<int> GetCards( int cards, int boxes, int minCards, int maxCards )
{
var random = new Random();
var temp = new List<int>();
while( boxes > 1 )
{
var tolMin = cards - (boxes - 1) * maxCards;
var tolMax = cards - (boxes - 1) * minCards;
minCards = tolMin > minCards ? tolMin : minCards;
maxCards = tolMax < maxCards ? tolMax : maxCards;
if (minCards > maxCards) throw new Exception("Все плохо");
var layInBox = minCards + random.Next(maxCards - minCards + 1);
temp.Add(layInBox);
cards -= layInBox;
boxes--;
}
temp.Add(cards);
var result = new List<int>();
while( temp.Count() > 0 )
{
var ix = random.Next(temp.Count());
result.Add(temp[ix]);
temp.RemoveAt(ix);
}
return result;
}
Такие вещи как максимальное/*минимальное количество определяются автоматически методами статистическйо математики.
Впрочем, если такая постановка ТЗ обосновыввается тьупо "хачу так" - то вон прекрасный гавнокод асокола - на 4 страницы, на который нельзя смотреть без слез. То что надо. Если переступить через себя и отказаться от необоснорванной прихоти - решение в пару строк.
вот так и микрософт говорит, а потом виста занимает 1 гиг памяти...слу, это проект в тыщи строк кода.
плюс-минус три десятка строк не есть предмет вообще чего-либо.
3 7 2 4 4 5 5
2 8 2 8 3 5 2
3 3 3 6 7 2 6
2 2 7 8 2 6 3
5 2 3 2 6 6 6
2 6 7 2 7 3 3
8 6 6 3 2 2 3
5 6 7 2 3 3 4
4 5 4 4 4 4 5
3 4 3 8 3 5 4
4 4 2 2 7 5 6
3 2 8 5 2 2 8
2 5 6 7 4 2 4
3 8 6 6 2 2 3
8 2 3 7 3 3 4
6 3 3 2 3 7 6
5 4 5 3 6 3 4
4 7 7 4 4 2 2
4 4 8 2 3 2 7
8 2 5 2 5 3 5
6 2 6 3 2 8 3
3 2 6 2 8 2 7
6 2 5 5 2 4 6
5 7 8 2 2 4 2
4 6 4 4 2 7 3
7 4 6 2 2 7 2
5 5 3 2 5 4 6
3 3 2 6 7 6 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ну тогда и реализация будет достойной.
это Ваша реализация не будет удовлетворять хотелкам клиента.
Вы больше времени потратите на споры.
все, встал и вышел. )))
вам не кажется, что 30 ящиков 1 карточка и
5 ящиков 500 карточек решаются несколько иначе?
или зубная щетка самэ оно для подметания плаца?
23 143 81 78 175
71 18 197 64 150
46 125 139 141 49
92 136 111 23 138
43 36 91 190 140
188 142 51 15 104
63 57 11 188 181
163 117 47 162 11
122 122 167 12 77
94 82 11 183 130
99 65 42 196 98
95 135 104 137 29
14 29 84 179 194
131 177 36 17 139
137 18 134 43 168
60 16 198 32 194
111 27 22 160 180
36 167 15 145 137
102 193 32 90 83
186 117 56 24 117
согласен. для больших количеств по-другому. как определить где грань?
Простите, это метафора или надо понимать буквально? Тот же алгоритм для 500 карточек, 5 ящиков от 10 до 200 в каждом.
я ъхочу сказать, что если число карточек намного больше чем число коробок, то можно с определенной вероятностью утверждать, что дисперсия выбоки, полученной путем рандомизации по дням!!!! не превысит заданную. А в случае, если превышение приниципиально недопустимо, то хотелось бы услышать обоснование этого. В противном случае это просто самодурство клиента - адекватный ответ - ****окод, который мы наблюдали на первой странице. Автор видать имеет бааальшой опыт работы с мудаками..
А квинтэссенция темы - красивое решение.
теория вероятности. дисперсия выборки.
если моделируется именно случайный закон, то никаких дополнительных ограничений не надо. я ж не влзражаю, что проще написать больше ****окода и это будет адекватной реакцией на такое ТЗ, но кричать, что это огерцогенно красивое решение нельзя!
да, и хотелось бы услышать мнение начальника транспортного цеха. Дмитрий.....
я ъхочу сказать, что если число карточек намного больше чем число коробок, то можно с определенной вероятностью утверждать, что дисперсия выбоки, полученной путем рандомизации по дням!!!! не превысит заданную. А в случае, если превышение приниципиально недопустимо, то хотелось бы услышать обоснование этого. В противном случае это просто самодурство клиента - адекватный ответ - ****окод, который мы наблюдали на первой странице. Автор видать имеет бааальшой опыт работы с мудаками..
А квинтэссенция темы - красивое решение.
я ъхочу сказать, что если число карточек намного больше чем число коробок, то можно с определенной вероятностью утверждать, что дисперсия выбоки, полученной путем рандомизации по дням!!!! не превысит заданную. А в случае, если превышение приниципиально недопустимо, то хотелось бы услышать обоснование этого. В противном случае это просто самодурство клиента - адекватный ответ - ****окод, который мы наблюдали на первой странице. Автор видать имеет бааальшой опыт работы с мудаками..
А квинтэссенция темы - красивое решение.
Стремная цитата получилась, г-н ASOkol, я по поводу Вашего кода ни слова не сказал, но тем не менее, был послан![]()
исступление эмоций...
else if (aMaxCount * aBoxCount <= aCardCount) {
for (var lBoxIndex = 0; lBoxIndex < aBoxCount; lBoxIndex++) {
lResult[lBoxIndex] = aMaxCount;
}
все равно там много и 21Для тупорылых: в решении на первой странице код занимает 21 строчку, остальное проверки и более быстрые алгоритмы заполнения массива для разных частных случаев, плюс html для проверки реализации алгоритма. Еще раз ***.

