Exemplo n.º 1
0
 public static IRnd <B> Select <A, B>(this IRnd <A> source, Func <A, B> func)
 {
     return(new FromFunc <B>(tries =>
                             from a in source.Next(tries)
                             select func(a)
                             ));
 }
Exemplo n.º 2
0
 public Neuron(IRnd rand, long index)
 {
     //Index = index;
     Output      = new List <NRelation>();
     State       = rand.Next(NNet.MIN_INIT_STATE, NNet.MAX_INIT_STATE);
     SpikePeriod = rand.Next(NNet.MIN_SPIKE_PERIOD, NNet.MAX_SPIKE_PERIOD);
 }
 public static IEnumerable <PaymentDTO> CreatePayments(AccountDTO[] accounts, PaymentStatus status, IRnd <string> recipientRnd,
                                                       IRnd <int> countRnd, IRnd <float> amountRnd, IRnd <DateTime> startDateRnd, Func <DateTime> datetimeNow, IRnd <TimeSpan> intervalRnd, TitleRnd titleRnd)
 {
     foreach (var account in accounts)
     {
         var count = countRnd.Next();
         for (int i = 0; i < count; i++)
         {
             var interval           = intervalRnd.Next();
             var startTimestamp     = startDateRnd.Next();
             var repayDiff          = (int)((datetimeNow() - startTimestamp) / interval);
             var lastRepayTimestamp = startTimestamp + repayDiff * interval;
             yield return(new PaymentDTO
             {
                 Id = Guid.NewGuid().ToString(),
                 Name = titleRnd.Next(5),
                 AccountId = account.Id,
                 Amount = amountRnd.Next(),
                 StartTimestamp = startTimestamp,
                 LatestProcessingTimestamp = lastRepayTimestamp,
                 Interval = interval,
                 Status = (int)status,
                 Recipient = recipientRnd.Next(account.Id)
             });
         }
     }
 }
Exemplo n.º 4
0
 public static IRnd <C> SelectMany <A, B, C>(this IRnd <A> source, Func <A, IRnd <B> > func, Func <A, B, C> selector)
 {
     return(new FromFunc <C>(tries =>
     {
         return from a in source.Next(tries)
         from b in func(a).Next(tries)
         select selector(a, b);
     }));
 }
 private static float GetAmount(AccountDTO[] accounts, IRnd <float> rnd)
 {
     while (true)
     {
         var amount = (float)Math.Round(rnd.Next(), 2);
         if (accounts.Any(a => a.Balance > amount))
         {
             return(amount);
         }
     }
 }
 public static IEnumerable <CardDTO> CreateCards(AccountDTO[] accounts, IRnd <int> countRnd)
 {
     foreach (var account in accounts)
     {
         var count = countRnd.Next();
         for (int i = 0; i < count; i++)
         {
             yield return new CardDTO {
                        Id = Guid.NewGuid().ToString(), AccountId = account.Id, Number = CreateCardNumber()
             }
         }
         ;
     }
 }
Exemplo n.º 7
0
        // пустой конструктор для сериалиции
        //public NNet() { }

        public NNet(ILogger <NNet> logger, IOptions <NNetConfig> optionsAccessor, IRnd rand)
        {
            Neuron.Net = this;
            // тестируем сериализацию в лонг
            LongTest         = 100123123123; // > 100 000 000 000
            _logger          = logger;
            _optionsAccessor = optionsAccessor;
            _filename        = _optionsAccessor.Value.FileName.TrimEnd(new char[] { '/', ' ' });
            LenX             = _optionsAccessor.Value.LenX;
            LenY             = _optionsAccessor.Value.LenY;
            LenZ             = _optionsAccessor.Value.LenZ;
            _rand            = rand;

            if (LenZ < 3)
            {
                LenZ = 3;           // 3 слоя минимум 1 входной последний выход
            }
            _logger.LogInformation(1111, "NNet constructor {FileName} {MaxX} {MaxY} {MaxZ}", _filename, LenX, LenY, LenZ);

            if (string.IsNullOrWhiteSpace(_filename))
            {
                _filename = "test.murin";
            }

            Stop();

            // инициализируем очередь задач
            Queue = new ConcurrentQueue <QueueNeuron>();

            if (System.IO.Directory.Exists(_filename) || System.IO.File.Exists(_filename + ".zip"))
            {
                load();
            }
            else
            {
                randomize();
                _setRelations();
                save();
            }

            //_initStatWeight();

            //_setOutputNeurons();
            //startThreads();
            Start();
        }
 public static IEnumerable <AccountDTO> CreateAccounts(UserDTO[] users, IRnd <int> countRnd, IRnd <float> balanceRnd)
 {
     foreach (var user in users)
     {
         var count = countRnd.Next();
         for (int j = 0; j <= count; j++)
         {
             //var b = random.Next(balance.Min, balance.Max) + GetCents;
             var balance = balanceRnd.Next();
             yield return(new AccountDTO
             {
                 Id = Guid.NewGuid().ToString(),
                 Balance = balance,
                 Number = CreateAccountNumber(),
                 UserId = user.Id
             });
         }
     }
 }
Exemplo n.º 9
0
 public static IRnd <A> Where <A>(this IRnd <A> source, Func <A, bool> predicate)
 {
     return(new FromFunc <A>(tries =>
     {
         for (int i = 0; i < tries; i++)
         {
             var ra = source.Next(1);
             if (!ra.WasSuccessful)
             {
                 continue;
             }
             var a = ra.Result;
             if (predicate(a))
             {
                 return ra;
             }
         }
         return new RndResult <A>();
     }));
 }
Exemplo n.º 10
0
        static PaymentDTO[] ActivePayments(AccountDTO[] accounts, IRnd <string> recipientRnd, IRnd <DateTime> timestampRnd)
        {
            var titleRnd = (TitleRnd) new RndBuilder <string>(new TitleRnd()).Build();
            var countRnd = new RndBuilder <int>()
                           .DistributionValues(new[] { 0, 1, 2 })
                           .DistributionProbabilities(new[] { 50, 40, 10 })
                           .Build();

            var amountRnd = new RndBuilder <float>(new CurrencyRnd()).Min(20).Max(20000)
                            .DistributionValues(new float[] { 500, 1000, 3000, 8000, 15000 })
                            .DistributionProbabilities(new[] { 30, 20, 30, 10, 7, 3 })
                            .Build(); //dystrybuanta
            var startDateRnd = timestampRnd;

            var intervalRnd = new RndBuilder <TimeSpan>()
                              .DistributionValues(new[] { TimeSpan.FromDays(30), TimeSpan.FromDays(90), TimeSpan.FromDays(180), TimeSpan.FromDays(365), })
                              .DistributionProbabilities(new[] { 75, 10, 10, 5 })
                              .Build();

            return(ValuesGenerator.CreatePayments(accounts, PaymentStatus.ACTIVE, recipientRnd, countRnd, amountRnd, startDateRnd, () => DateTime.UtcNow, intervalRnd, titleRnd).ToArray());
        }
Exemplo n.º 11
0
 public static A Single <A>(this IRnd <A> rnd)
 {
     return(rnd.Next(Sx.NumberTries).Result);
 }
Exemplo n.º 12
0
 public XORShiftRandom(IRnd lcg_rnd)
     : this(lcg_rnd.NextUInt(), lcg_rnd.NextUInt(), lcg_rnd.NextUInt(), lcg_rnd.NextUInt())
 {
 }
Exemplo n.º 13
0
 public static IRnd <B> SelectMany <A, B>(this IRnd <A> source, Func <A, IRnd <B> > func)
 {
     return(source.SelectMany(func, (_, b) => b));
 }
Exemplo n.º 14
0
Arquivo: IRnd.cs Projeto: Vovanda/GAS
 public static bool NextBool(this IRnd rnd)
 {
     return(rnd.NextBoolInt() == 1);
 }
        public static IEnumerable <TransactionDTO> CreateTransactions(AccountDTO[] accounts, IRnd <string> recipientRnd, IRnd <int> countRnd, IRnd <DateTime> timestampRnd, IRnd <float> amountRnd, IRnd <string> titleRnd)
        {
            foreach (var account in accounts)
            {
                int count = countRnd.Next();
                for (int i = 0; i < count; i++)
                {
                    var debit     = random.Next(0, 1) == 1;
                    var sender    = debit ? account.Id : recipientRnd.Next(account.Id);
                    var recipient = !debit?recipientRnd.Next(account.Id) : account.Id;

                    yield return(new TransactionDTO
                    {
                        Id = Guid.NewGuid().ToString(),
                        Amount = amountRnd.Next(),
                        Sender = sender,
                        Timestamp = timestampRnd.Next(),
                        Recipient = recipient,
                        Title = titleRnd.Next()
                    });
                }
            }
        }
Exemplo n.º 16
0
 public FastMonster(WorldMatrix worldMatrix, IRnd rnd)
     : base(worldMatrix, rnd)
 {
 }
        public static IEnumerable <(LoanDTO, PaymentDTO)> CreateLoans(AccountDTO[] loansAccounts, IRnd <int> countRnd, IRnd <float> totalRnd,
                                                                      LoanInstalmentsRnd instalmentsRnd, Rnd <int> paidInstalmentsRnd, IRnd <TimeSpan> intervalRnd, Func <DateTime> datetimeNow, IRnd <string> recipientRnd)
        {
            foreach (var account in loansAccounts)
            {
                var count = countRnd.Next();
                for (int i = 0; i < count; i++)
                {
                    var totalAmount = totalRnd.Next();
                    var instalments = instalmentsRnd.Next(totalAmount);
                    paidInstalmentsRnd.Max = instalments;
                    var paidInstalments = paidInstalmentsRnd.Next();
                    var paidAmount      = (float)paidInstalments / instalments * totalAmount;

                    var loan = new LoanDTO
                    {
                        Id          = Guid.NewGuid().ToString(),
                        Instalments = instalments,
                        TotalAmount = totalAmount,
                        PaidAmount  = paidAmount,
                        AccountId   = account.Id
                    };

                    var interval           = intervalRnd.Next();
                    var start              = datetimeNow() - interval * paidInstalments;
                    var recipient          = recipientRnd.Next(account.Id);
                    var lastRepayTimestamp = start + interval * paidInstalments;
                    var payment            = new PaymentDTO
                    {
                        Id                        = Guid.NewGuid().ToString(),
                        Name                      = $"Loan {loan.Id} payment",
                        AccountId                 = account.Id,
                        Amount                    = totalAmount / instalments,
                        Interval                  = interval,
                        StartTimestamp            = start,
                        LatestProcessingTimestamp = lastRepayTimestamp,
                        Status                    = (int)PaymentStatus.ACTIVE,
                        Recipient                 = recipient
                    };

                    loan.PaymentId = payment.Id;
                    yield return(loan, payment);
                }
            }
        }
Exemplo n.º 18
0
Arquivo: IRnd.cs Projeto: Vovanda/GAS
 public static float NextFloat(this IRnd rnd, float a, float b)
 {
     return(a + rnd.NextFloat() * (b - a));
 }
Exemplo n.º 19
0
 public static IRnd <IEnumerable <A> > Take <A>(this IRnd <A> rnd, int count)
 {
     return(Enumerable.Range(0, count).Select(_ => rnd).Sequence());
 }
Exemplo n.º 20
0
 public NNetServer(ILogger <NNet> logger, IOptions <NNetConfig> optionsAccessor, IRnd rand) : base(logger, optionsAccessor, rand)
 {
 }
Exemplo n.º 21
0
 public Gauss(IRnd rnd) : this(rnd, 0.0, 1.0)
 {
 }
Exemplo n.º 22
0
 public Gauss(IRnd rnd, double mean, double dev)
 {
     _rnd  = rnd;
     _mean = mean;
     _dev  = dev;
 }
Exemplo n.º 23
0
 public Monster1x1(IWorldMatrix worldMatrix, IRnd rnd)
     : base(worldMatrix, rnd)
 {
 }
Exemplo n.º 24
0
 public static A Single <A>(this IRnd <A> rnd, int tries)
 {
     return(rnd.Next(tries).Result);
 }
Exemplo n.º 25
0
Arquivo: IRnd.cs Projeto: Vovanda/GAS
 public static double NextDouble(this IRnd rnd, int a, int b)
 {
     return(a + rnd.NextDouble() * (b - a));
 }
Exemplo n.º 26
0
        private static RndResult <IEnumerable <A> > NoRepeat <A>(int count, int tries, IRnd <A> rnd) where A : IEquatable <A>
        {
            A last = default(A);

            A[] arr = new A[count];
            for (int i = 0; i < count; i++)
            {
                var res = i == 0
                    ? rnd.Next(tries)
                    : rnd.Where(a => !a.Equals(last)).Next(tries);
                if (!res.WasSuccessful)
                {
                    return(new RndResult <IEnumerable <A> >());
                }
                last   = res.Result;
                arr[i] = last;
            }
            return(new RndResult <IEnumerable <A> >(arr));
        }
 public static IEnumerable <TransactionDTO> CreateTransactions(CardDTO[] cards, IRnd <string> recipientRnd, IRnd <int> countRnd, IRnd <DateTime> timestampRnd, IRnd <float> amountRnd)
 {
     foreach (var card in cards)
     {
         int count = countRnd.Next();
         for (int i = 0; i < count; i++)
         {
             var timestamp = timestampRnd.Next();
             var amount    = amountRnd.Next();
             yield return(new TransactionDTO
             {
                 Id = Guid.NewGuid().ToString(),
                 Amount = amount,
                 CardId = card.Id,
                 Sender = card.AccountId,
                 Timestamp = timestamp,
                 Recipient = recipientRnd.Next(card.AccountId),
                 Title = $"{timestamp} card usage for a transfer worth {amount} EUR."
             });
         }
     }
 }
Exemplo n.º 28
0
Arquivo: IRnd.cs Projeto: Vovanda/GAS
 public static int Next(this IRnd rnd, int a, int b)
 {
     return(a + (int)((b - a) * rnd.NextDouble()));
 }
Exemplo n.º 29
0
 public static IRnd <IEnumerable <A> > Take <A>(this IRnd <int> count, IRnd <A> rnd)
 {
     return(count.SelectMany(i => rnd.Take(i)));
 }
Exemplo n.º 30
0
Arquivo: IRnd.cs Projeto: Vovanda/GAS
 public static int NextBoolInt(this IRnd rnd)
 {
     // x & 1 <=> x % 2
     return((int)(rnd.NextUInt() & 1));
 }
Exemplo n.º 31
0
 public static IRnd <IEnumerable <A> > TakeNoRepeat <A>(this int count, IRnd <A> rnd)
     where A : IEquatable <A>
 {
     return(new FromFunc <IEnumerable <A> >(tries => NoRepeat(count, tries, rnd)));
 }
Exemplo n.º 32
0
 public static IRnd <IEnumerable <A> > TakeNoRepeat <A>(this IRnd <int> count, IRnd <A> rnd)
     where A : IEquatable <A>
 {
     return(count.SelectMany(i => i.TakeNoRepeat(rnd)));
 }
Exemplo n.º 33
0
 public LargeMonster(WorldMatrix worldMatrix, IRnd rnd)
     : base(worldMatrix, rnd)
 {
 }
Exemplo n.º 34
0
 public Monster(IWorldMatrix worldMatrix, IRnd randomizer)
 {
     _randomizer = randomizer;
     _worldMatrix = worldMatrix;
 }