Advertisement
Infiniti_Inter

Generv2

Apr 22nd, 2022
853
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.08 KB | None | 0 0
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Threading;
  4.  
  5.  
  6. namespace serialize
  7. {
  8.  
  9.    
  10.     class Generator
  11.     {
  12.  
  13.  
  14.         public (int, int, int, int) GetMod(int diff)
  15.         {
  16.             int mod1 = 1;// +-
  17.             int mod2 = 1;// +-
  18.             int mod3 = 1;// */
  19.             int mod4 = 1;// */
  20.  
  21.             if (diff == 0)
  22.             {
  23.                 mod1 = 101;// +-
  24.                 mod2 = 101;// +-
  25.                 mod3 = 11;// */
  26.                 mod4 = 11;// */
  27.             }
  28.             if (diff == 1)
  29.             {
  30.                 mod1 = 11;
  31.                 mod2 = 11;
  32.                 mod3 = 10;
  33.                 mod4 = 10;
  34.             }
  35.             return (mod1, mod2, mod3, mod4);
  36.         }
  37.  
  38.         public static char GetSign()
  39.         {
  40.  
  41.             Random rnd = new Random();
  42.             int tmp = rnd.Next() % 4;
  43.             char result = '.';
  44.  
  45.             switch (tmp)
  46.             {
  47.                 case (0):
  48.                     result = '+';
  49.                     break;
  50.                 case (1):
  51.                     result = '-';
  52.                     break;
  53.                 case (2):
  54.                     result = '*';
  55.                     break;
  56.                 case (3):
  57.                     result = '/';
  58.                     break;
  59.                 default:
  60.                     break;
  61.             }
  62.             return result;
  63.         }
  64.  
  65.         public (int, int) GetPair(int mod1, int mod2)
  66.         {
  67.             Random rnd = new Random();
  68.             int res1, res2;
  69.             res1 = (rnd.Next() % mod1) + 1;
  70.             res2 = (rnd.Next() % mod2) + 1;
  71.             return (res1, res2);
  72.         }
  73.  
  74.        
  75.  
  76.         public (string, char, string, int) Build(char Sign, int diff)
  77.         // first sign second result
  78.         {
  79.             (string, char, string, int) result;
  80.             var MOD = GetMod(diff);
  81.             if (Sign == '+')
  82.             {
  83.                 (int, int) Expression = GetPair(MOD.Item1, MOD.Item2);
  84.                 result.Item1 = Expression.Item1.ToString();
  85.                 result.Item2 = Sign;
  86.                 result.Item3 = Expression.Item2.ToString();
  87.                 result.Item4 = Expression.Item1 + Expression.Item2;
  88.             }
  89.             else
  90.             if (Sign == '-')
  91.             {
  92.                 (int, int) Expression = GetPair(MOD.Item1, MOD.Item2);
  93.                 if (Expression.Item1 < Expression.Item2)
  94.                 {
  95.                     int a = Expression.Item1;
  96.                     Expression.Item1 = Expression.Item2;
  97.                     Expression.Item2 = a;
  98.                 }
  99.                 result.Item1 = Expression.Item1.ToString();
  100.                 result.Item2 = Sign;
  101.                 result.Item3 = Expression.Item2.ToString();
  102.                 result.Item4 = Expression.Item1 - Expression.Item2;
  103.             }
  104.             else
  105.             if (Sign == '/')
  106.             {
  107.                 (int, int) Expression = GetPair(MOD.Item3, MOD.Item4);
  108.                 Expression.Item1 = Expression.Item2 * Expression.Item1;
  109.                 result.Item1 = Expression.Item1.ToString();
  110.                 result.Item2 = Sign;
  111.                 result.Item3 = Expression.Item2.ToString();
  112.                 result.Item4 = Expression.Item1 / Expression.Item2;
  113.             }
  114.             else
  115.             {
  116.                 (int, int) Expression = GetPair(MOD.Item3, MOD.Item4);
  117.                 result.Item1 = Expression.Item1.ToString();
  118.                 result.Item2 = Sign;
  119.                 result.Item3 = Expression.Item2.ToString();
  120.                 result.Item4 = Expression.Item1 * Expression.Item2;
  121.             }
  122.  
  123.             return result;
  124.         }
  125.  
  126.  
  127.         static void Main(string[] args)
  128.         {
  129.             int diff = 0;
  130.  
  131.  
  132.  
  133.             //for (int i = 0; i < 25; ++i)
  134.             {
  135.             Generator abs = new Generator();
  136.            
  137.                 //for (int j = 0; j < 6500000; j++) ;
  138.                 var a = abs.Build(GetSign(), diff);
  139.                 Thread.Sleep(1);
  140.                 var b = abs.Build(GetSign(), diff);
  141.  
  142.  
  143.  
  144.                
  145.         //      Console.WriteLine(a);
  146.     //          Console.WriteLine(b);
  147.  
  148.                
  149.                
  150.  
  151.             }
  152.         }
  153.  
  154.     }
  155. }
  156.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement