Страница 2 от 2 ПърваПърва 12
Резултати от 16 до 23 от общо 23

Задача 338: За любителите на аритметиката и информатиката (накуп)

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #16

    Re:За любителите на аритметиката и информа

    Нали търсим алгоритъм? Значи езиците нямат значение. Или греша?

    А всъщност имам въпрос: какво да разбираме под "подреждане по случаен начин"?
    Ако трябва да е пълна липса на закономерност в подредбата, за сега не мога да си представя как това би могло да се постигне с алгоритъм. По принцип.
    А ако става дума за по-слабото - закономерност, която не може да бъде видяна с просто око, тогава е друго. Макар че още нямам никаква идея, освен изтърканите манипулации с часовника.

  2.  
     
  3. Member
    Тук е от
    Sep 2004
    Мнения
    633
    #17

    Re:За любителите на аритметиката и информатиката (накуп)

    Езиците нямат значение. Споменах за интерпретатор заради отчетливо бавната работа.
    Имах предвид проста работа - с random. Това за часовника не го знам, може би е оптимално?

  4. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #18

    Re:За любителите на аритметиката и информатиката (накуп)

    Т.е. ти казваш, че може да се ползва вградения random() на някой език и с негова помощ, така ли?
    Аз помислих нещо по-дълбоко. Че ще пишем как работи самия random().
    И навремето в Паскал, мисля, че работеше, взимайки показанията на часовника. За да дава всеки път различен резултат, трябва да започва с нещо, което се мени.

    Всъщност ние искаме ли всяко стартиране на алгоритъма да ни дава различно подреждане?

  5. Member
    Тук е от
    Sep 2004
    Мнения
    633
    #19

    Re:За любителите на аритметиката и информатиката (накуп)

    Цитат Първоначално публикувано от Bibi
    Т.е. ти казваш, че може да се ползва вградения random() на някой език и с негова помощ, така ли?
    Аз помислих нещо по-дълбоко. Че ще пишем как работи самия random().
    И навремето в Паскал, мисля, че работеше, взимайки показанията на часовника. За да дава всеки път различен резултат, трябва да започва с нещо, което се мени.

    Всъщност ние искаме ли всяко стартиране на алгоритъма да ни дава различно подреждане?
    Не, не искаме, по-точно - няма значение. Но може да инициализира random-а с днешната дата (така съм направил програмка за числата на тотото). Може да се добави и часа
    Всъщност търсим максимална бързина на алгоритъма, като приемаме, че генерирането на случайно цяло число в даден диапазон не е проблем.
    Един възможен алгоритъм е, например:
    - генерира се число от 1 до N,
    - записва се на първо място,
    - генерира се ново,
    - проверява се дали не е вече излязло,
    - ако не е - записва се на следващото място и т.н. до изчерпване на N-те числа.
    Този алгоритъм обаче е много бавен за големи N. Примерно над 10^5.


  6. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #20

    Re:За любителите на аритметиката и информатиката (накуп)

    Сега ми се спи, но едно такова и от мен:
    - записваме ги последователно
    - избираме две произволни и им разменяме местата -> това в цикъл с някаква постоянна или пък с random дължина

  7. Member
    Тук е от
    Sep 2004
    Мнения
    633
    #21

    Re:Задача 338: За любителите на аритметиката и информатиката (накуп)

    Не ми харесва (в смисъла на условието).
    Както в примерния алгоритъм, който дадох, така и при твоя, броят на необходимите цикли за включване с голяма вероятност на всички числа (N на брой) в процеса нараства много стръмно с нарастването на N.
    Примерно, при N=10^6, направи сметка колко цикъла са необходими за да се избере дадено число К(N) с доверителна вероятност 99% примерно. За да бъдат "омешани" всичките. Дори бих добавил подусловие - всичките членове да вземат участие. Не че не може случайно някои да си останат на първоначалните места, но това да е минало през процеса, да е наистина случайно.

  8.  
     
  9. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #22

    Re:Задача 338: За любителите на аритметиката и информатиката (накуп)

    Tо не че на мен ми харесваше.

    А така:
    Взимаме някакво число, взаимно просто с N. Може да вземем някое просто число P за по-лесно.
    Започваме от random начало.
    Следващите да са предното плюс P по модул N.
    Така с N стъпки ще ги разбъркаме.

  10. Member
    Тук е от
    Sep 2004
    Мнения
    633
    #23

    Re:Задача 338: За любителите на аритметиката и информатиката (накуп)

    Щом казваш...

Сподели във Facebook Сподели в Google Plus Сподели в Twitter Изпрати на Email Сподели в LinkedIn
Страница 2 от 2 ПърваПърва 12

Подобни теми

  1. За любителите на шахмата
    От Wise във форум Спорт
    Отговори: 8
    Последно: 26-06-15, 13:00
  2. За любителите на Command And Conquer 3
    От stenly във форум ИГРИ
    Отговори: 1
    Последно: 21-03-08, 01:08
  3. За любителите на Server 2003
    От ru-boy във форум Общ - софтуер
    Отговори: 2
    Последно: 11-07-06, 15:50
  4. За любителите на високите скорости!
    От BerkStock във форум Дъра-Бъра
    Отговори: 9
    Последно: 25-01-06, 23:38
  5. За любителите на шаха
    От Yasen6275 във форум ИГРИ
    Отговори: 25
    Последно: 30-08-05, 13:37

SetCombG.com
SetCombG.com е портален сайт и Форум за битова техника, телевизори, климатици, лаптопи и смартфони, създаден през 1999 година.
Заедно сме над 20 години!
Следвай ни
Горе