To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
Mistrzowie.org Forum Oficjalne
forum zrzeszające użytkowników serwisu mistrzowie.org

Z życia forum - Pierwsze Mikołajki Forumowe

Moris299 - 2017-11-14, 00:49


icywind - 2017-11-14, 00:53

Mój jest lepszy przecież.

[ Dodano: 2017-11-14, 00:55 ]
Love to tylko jeden wielki cykl a mój uwzględnia minicykle i pary. Jest większa losowość wyników

[ Dodano: 2017-11-14, 00:56 ]
Z moim może być np

1-2
2-3
3-1
4-5
5-4
6-7
7-8
8-6

[ Dodano: 2017-11-14, 00:57 ]
A w love tylko jeden wielki cykl zaczynający się na 1 i kończący ma 8

[ Dodano: 2017-11-14, 01:40 ]
Chuj tam, przecież to można na głupiego losować w nieskończoność aż wszystko będzie różne i napisać wszystko w mniej niżtrzy minuty. Właśnie to zrobiłem.

Kod:
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>

int main(int argc, char *argv[])
{
    std::vector<std::string> nadajacy = {"Mormegil",
                                         "ChodnikowyWilk",
                                         "Dead_Laugh",
                                         "Love178",
                                         "Lilith_Madness",
                                         "icywind",
                                         "manciara9",
                                         "Mackers",
                                         "macbed",
                                         "widzu",
                                         "Moris299",
                                         "Mistress9",
                                         "krojechleb",
                                         "Nadir",
                                         "InessaMaximova",
                                         "emoo137" };
    std::vector<std::string> odbierajacy = nadajacy;
    std::random_device rd;
    std::mt19937 g(rd());
    bool dobranePanowie = false;

    while(!dobranePanowie)
    {
        std::shuffle(nadajacy.begin(), nadajacy.end(), g);
        std::shuffle(odbierajacy.begin(), odbierajacy.end(), g);
        int i = 0;
        for(i = 0; i < nadajacy.size(); i++)
        {
            if(nadajacy[i] == odbierajacy[i])
            {
                break;
            }
        }
        if(i == nadajacy.size())
            dobranePanowie = true;
    }
    for(int i = 0; i < nadajacy.size(); i++)
    {
        std::cout << nadajacy[i] << " wysyła paczkę " << odbierajacy[i] << std::endl;
    }
    return 0;
}

borze jakie to chujowe.... nie wzorujcie się na takim gównie... ale działa xD

macbed wysyła paczkę Dead_Laugh
Dead_Laugh wysyła paczkę InessaMaximova
Nadir wysyła paczkę icywind
Love178 wysyła paczkę Mormegil
krojechleb wysyła paczkę Mistress9
Mackers wysyła paczkę widzu
emoo137 wysyła paczkę krojechleb
Moris299 wysyła paczkę Nadir
widzu wysyła paczkę Mackers
icywind wysyła paczkę emoo137
ChodnikowyWilk wysyła paczkę macbed
InessaMaximova wysyła paczkę manciara9
Mistress9 wysyła paczkę ChodnikowyWilk
Mormegil wysyła paczkę Love178
Lilith_Madness wysyła paczkę Moris299
manciara9 wysyła paczkę Lilith_Madness

Moris299 - 2017-11-14, 01:44

:clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap:
icywind - 2017-11-14, 01:45

Nie wiem po co ja w ogóle obie listy tasuje jak wystarczy jedną ale chuj, jakie forum taki program losujący.
widzu - 2017-11-14, 01:47

Dobra, no, wygrałeś, użyję tego programu, ale nie mam zamiaru robić żadnych livów ani tego nagrywać. -,-

[ Dodano: 2017-11-14, 01:59 ]
To znaczy będzie kilka losowań, bo niektórzy nie mogą paczkomatow w ogóle, albo tylko nadawać...

Eh, jakoś to rozwiąże, mniej lub bardziej logicznie, ale będzie sprawiedliwie.

Odrobinę zaufania :-P

Mormegil - 2017-11-14, 08:02

icywind napisał/a:
Love178 wysyła paczkę Mormegil
Mormegil wysyła paczkę Love178


Świetne losowanko xd

Mistress9 - 2017-11-14, 14:06

Ja też napisałam, w Pythonie xD

Kod:
import random

mistrzowie1 = ['ChodnikowyWilk', 'Dead_Laugh', 'emoo137', 'icywind', 'InessaMaximova',
              'krojechleb','Love178', 'macbed', 'Mackers', 'manciara9',
              'Mistress9', 'Moris299', 'Mormegil', 'Nadir', 'widzu']

mistrzowie2 = ['ChodnikowyWilk', 'Dead_Laugh', 'emoo137', 'icywind', 'InessaMaximova',
              'krojechleb','Love178', 'macbed', 'Mackers', 'manciara9',
              'Mistress9', 'Moris299', 'Mormegil', 'Nadir', 'widzu']

def mikolaj():
    for i in range(len(mistrzowie1)):
        ran = random.choice(mistrzowie2)
        if mistrzowie1[i] == ran:
            ran2 = random.choice(mistrzowie2)
            print (mistrzowie1[i], 'wysyla', ran2)
            mistrzowie2.remove(ran2)
        else:
            print (mistrzowie1[i], 'wysyla', ran)
            mistrzowie2.remove(ran)

mikolaj()


[ Dodano: 2017-11-14, 14:11 ]
Chociaż może takie lepsze, bardziej randomowe:

Kod:
import random

mistrzowie1 = ['ChodnikowyWilk', 'Dead_Laugh', 'emoo137', 'icywind', 'InessaMaximova',
              'krojechleb','Love178', 'macbed', 'Mackers', 'manciara9',
              'Mistress9', 'Moris299', 'Mormegil', 'Nadir', 'widzu']

mistrzowie2 = ['ChodnikowyWilk', 'Dead_Laugh', 'emoo137', 'icywind', 'InessaMaximova',
              'krojechleb','Love178', 'macbed', 'Mackers', 'manciara9',
              'Mistress9', 'Moris299', 'Mormegil', 'Nadir', 'widzu']

def mikolaj():
    for i in range(len(mistrzowie1)):
        mis = random.choice(mistrzowie1)
        ran = random.choice(mistrzowie2)
        if mis == ran:
            ran2 = random.choice(mistrzowie2)
            print (mis, 'wysyla', ran2)
            mistrzowie1.remove(mis)
            mistrzowie2.remove(ran2)
        else:
            print (mis, 'wysyla', ran)
            mistrzowie1.remove(mis)
            mistrzowie2.remove(ran)

mikolaj()



Hie, hie

emoo137 wysyla ChodnikowyWilk
manciara9 wysyla Mackers
Moris299 wysyla krojechleb
Dead_Laugh wysyla Moris299
icywind wysyla widzu
Nadir wysyla InessaMaximova
macbed wysyla Mistress9
krojechleb wysyla Love178
Love178 wysyla emoo137
InessaMaximova wysyla manciara9
Mistress9 wysyla macbed
ChodnikowyWilk wysyla Mormegil
widzu wysyla icywind
Mackers wysyla Dead_Laugh
Mormegil wysyla Nadir

icywind - 2017-11-14, 14:16

Tak lepiej
Kod:
import random

mistrzowie1 = ['ChodnikowyWilk', 'Dead_Laugh', 'emoo137', 'icywind', 'InessaMaximova',
              'krojechleb','Love178', 'macbed', 'Mackers', 'manciara9',
              'Mistress9', 'Moris299', 'Mormegil', 'Nadir', 'widzu']

mistrzowie2 = list(mistrzowie1)

def mikolaj():
    for i in range(len(mistrzowie1)):
        ran = random.choice(mistrzowie2)
        if mistrzowie1[i] == ran:
            ran2 = random.choice(mistrzowie2)
            print (mistrzowie1[i], 'wysyla', ran2)
            mistrzowie2.remove(ran2)
        else:
            print (mistrzowie1[i], 'wysyla', ran)
            mistrzowie2.remove(ran)

mikolaj()


('ChodnikowyWilk', 'wysyla', 'macbed')
('Dead_Laugh', 'wysyla', 'icywind')
('emoo137', 'wysyla', 'Love178')
('icywind', 'wysyla', 'Nadir')
('InessaMaximova', 'wysyla', 'Mormegil')
('krojechleb', 'wysyla', 'manciara9')
('Love178', 'wysyla', 'Dead_Laugh')
('macbed', 'wysyla', 'ChodnikowyWilk')
('Mackers', 'wysyla', 'krojechleb')
('manciara9', 'wysyla', 'Mackers')
('Mistress9', 'wysyla', 'Moris299')
('Moris299', 'wysyla', 'emoo137')
('Mormegil', 'wysyla', 'widzu')
('Nadir', 'wysyla', 'Mistress9')
('widzu', 'wysyla', 'InessaMaximova')

Bierzemy tą listę, nic nie trzeba zmieniać

Dead_Laugh - 2017-11-14, 14:19

XD
icywind - 2017-11-14, 14:20

widzu napisał/a:

To znaczy będzie kilka losowań, bo niektórzy nie mogą paczkomatow w ogóle, albo tylko nadawać...

Eh, jakoś to rozwiąże, mniej lub bardziej logicznie, ale będzie sprawiedliwie.

Wytłumacz mi jak to ma działać to dopiszę klasę i metodę porównującą czy osoba1 może wysłać do osoby2
Wykona to się 300 razy zanim dobierze odpowiednie wyniki ale czo tam xD

Mistress9 napisał/a:
import random

mistrzowie1 = ['ChodnikowyWilk', 'Dead_Laugh', 'emoo137', 'icywind', 'InessaMaximova',
'krojechleb','Love178', 'macbed', 'Mackers', 'manciara9',
'Mistress9', 'Moris299', 'Mormegil', 'Nadir', 'widzu']

mistrzowie2 = ['ChodnikowyWilk', 'Dead_Laugh', 'emoo137', 'icywind', 'InessaMaximova',
'krojechleb','Love178', 'macbed', 'Mackers', 'manciara9',
'Mistress9', 'Moris299', 'Mormegil', 'Nadir', 'widzu']

def mikolaj():
for i in range(len(mistrzowie1)):
mis = random.choice(mistrzowie1)
ran = random.choice(mistrzowie2)
if mis == ran:
ran2 = random.choice(mistrzowie2)
print (mis, 'wysyla', ran2)
mistrzowie1.remove(mis)
mistrzowie2.remove(ran2)
else:
print (mis, 'wysyla', ran)
mistrzowie1.remove(mis)
mistrzowie2.remove(ran)

mikolaj()

('emoo137', 'wysyla', 'emoo137')
('Dead_Laugh', 'wysyla', 'ChodnikowyWilk')
('ChodnikowyWilk', 'wysyla', 'Dead_Laugh')

Mistress9 - 2017-11-14, 14:22

No to chyba wtedy się ustali między sobą jaka wysyłka? XD

[ Dodano: 2017-11-14, 14:23 ]
icywind jakim cudem Ci takie cos powychodziło? pamiętaj o wcięciach też

Moris299 - 2017-11-14, 14:23

gdybym miał czas to bym to napisał ale zaraz jadę do holandii :bye:

[ Dodano: 2017-11-14, 14:24 ]
forum.programisci15k.org

icywind - 2017-11-14, 14:24

Mistress9 napisał/a:
icywind jakim cudem Ci takie cos powychodziło? pamiętaj o wcięciach też

Pamiętam, nie jestem idiotą :patyk:
weź zostaw tylko trzy osoby i puść kilka razy aż tak wyjdzie. Jest szansa, że wszyscy się polosują i na końcu zostanie tylko jedna osoba. Tłumaczyłem to parę stron wcześniej, że trzeba by wtedy powtórzyć losując ręcznie

Mistress9 - 2017-11-14, 14:26

Mi ani razu nie wyszło żeby ktoś wysłał do siebie (zreszta po to jest warunek XD) ani zeby nadawca wyslal adresatowi i ten sam adresat nadawcy (to, co wrzucilam jako wynik to śmieszek taki)

[ Dodano: 2017-11-14, 14:26 ]
icywind napisał/a:
Mistress9 napisał/a:
icywind jakim cudem Ci takie cos powychodziło? pamiętaj o wcięciach też

Pamiętam, nie jestem idiotą :patyk:
weź zostaw tylko trzy osoby i puść kilka razy aż tak wyjdzie. Jest szansa, że wszyscy się polosują i na końcu zostanie tylko jedna osoba. Tłumaczyłem to parę stron wcześniej, że trzeba by wtedy powtórzyć losując ręcznie


Wiesz jakie jest na to prawdopodobieństwo? XD Dlatego najlepiej odpalić streama i puścić raz program i już, ewentualnie powtórzyć losowanie.

icywind - 2017-11-14, 14:27

Mistress9 napisał/a:
Wiesz jakie jest na to prawdopodobieństwo? XD Dlatego najlepiej odpalić streama i puścić raz program i już, ewentualnie powtórzyć losowanie.

Wiem, ale jest xD

Mistress9 - 2017-11-14, 14:28

Szukasz dziury w całym XD
icywind - 2017-11-14, 14:30

Trzeba takie rzeczy uwzględnić programując poważne rzeczy na forum miszczów. Dlatego użyłem cudownego i niesamowicie efektywnego algorytmu "tasuj losowo aż to wyjdzie"

[ Dodano: 2017-11-14, 14:30 ]
W ogóle to program nazwałem Generator Świąt

Mistress9 - 2017-11-14, 14:31

Oh my, moze po prostu faktycznie klasycznie stream + dwa pudelka z karteczkami

[ Dodano: 2017-11-14, 14:31 ]
icywind napisał/a:

W ogóle to program nazwałem Generator Świąt


:D

icywind - 2017-11-14, 14:36

Mistress9 napisał/a:
Oh my, moze po prostu faktycznie klasycznie stream + dwa pudelka z karteczkami

Widzu tego nie zrobi. Poza tym mój program działa doskonale za każdym razem, jeszcze tylko dopisać metodę porównującą sposoby wysyłania

Moris299 - 2017-11-14, 14:39

A nie możemy wszyscy wysłać po prostu poczta? Będzie chyba najtaniej.


Powered by phpBB modified by Przemo © 2003 phpBB Group