Maxim_Leo

Untitled

May 13th, 2022
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.28 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.math.BigInteger;
  4. import java.util.*;
  5. import java.util.concurrent.ThreadLocalRandom;
  6.  
  7. class Pair<T,M>{
  8. private T first;
  9. private M second;
  10. final T getFirst(){
  11. return first;
  12. }
  13. final M getSecond(){
  14. return second;
  15. }
  16. final void setFirst(T m){
  17. this.first=m;
  18. }
  19. final void setSecond(M i){
  20. this.second=i;
  21. }
  22. protected Pair(){}
  23. public Pair(T max,M index){
  24. this.first=max;
  25. this.second=index;
  26.  
  27. }
  28. public static <T,M> Pair make_pair(T max,M index){
  29. return new Pair<T,M>(max,index);
  30. }
  31. final void show(){
  32. System.out.print(first+" ");
  33. System.out.print(second+" ");
  34. }
  35.  
  36. }
  37.  
  38.  
  39. class Bag {
  40. private Object[] mas ;
  41.  
  42. public Object[] getMas() {
  43. return mas;
  44. }
  45.  
  46. public Bag(int n) {
  47. mas=new Object [n];
  48. }
  49.  
  50. public void add(Object num) {
  51. int count = -1;
  52. boolean flag = false;
  53. int r = (int) Math.round(Math.random() * (mas.length - 1));
  54. while (!flag) {
  55. for (int k = 0; k < mas.length; k++) {
  56. if (mas[k] == null) {
  57. if(r == k) {
  58. mas[k]=num;
  59. System.out.println("Предмет " + mas[k] + " добавлен в мешок");
  60. flag = true;
  61. break;
  62. }
  63. } else count++;
  64. }
  65. r = (int) Math.round(Math.random() * (mas.length - 1));
  66. if (mas.length - 1 == count) {
  67. System.out.println("Мешок полон");
  68. break;
  69. }
  70. }
  71. }
  72.  
  73. public Object remove() {
  74. boolean flag = false;
  75. Object tmp=null;
  76. if (mas.length == 0) return tmp;
  77. while (!flag) {
  78. int r = (int) Math.round(Math.random() * (mas.length - 1));
  79. for (int k = 0; k < mas.length; k++) {
  80. if (mas[k] != null && r == k) {
  81. tmp = mas[k];
  82. System.out.println("Предмет " + mas[k] + " удален");
  83. mas[k]=null;
  84. flag = true;
  85. break;
  86. }
  87. }
  88. }
  89. return tmp;
  90. }
  91.  
  92. public final Object retElem(int i) {
  93. return mas[i];
  94. }
  95.  
  96. public final int retSize() {
  97. return mas.length;
  98. }
  99.  
  100. public void show() {
  101. for (Object i : mas) {
  102. if(i!=null)
  103. System.out.print(i + " ");
  104. }
  105. System.out.println();
  106. }
  107. }
  108.  
  109. class PairBag {
  110. private final Bag bag;
  111. public final Bag getBag() {return bag;}
  112. public PairBag(int n) {
  113. bag=new Bag(n);
  114. }
  115.  
  116. public void add(Object num,Object num1) {
  117. int count = -1;
  118. boolean flag = false;
  119. Pair pair1 = Pair.make_pair(num,num1);
  120. int r = (int) Math.round(Math.random() * (bag.getMas().length - 1));
  121. while (!flag) {
  122. for (int k = 0; k < bag.getMas().length; k++) {
  123. if (bag.getMas()[k] == null) {
  124. if(r==k) {
  125. bag.getMas()[k]=pair1;
  126. System.out.println("Пара значений ");
  127. pair1.show();
  128. System.out.print("добавлена в мешок");
  129. System.out.println();
  130. flag = true;
  131. break;
  132. }
  133. } else count++;
  134. }
  135. r = (int) Math.round(Math.random() * (bag.getMas().length - 1));
  136. if (bag.getMas().length - 1 == count) {
  137. System.out.println("Мешок полон");
  138. break;
  139. }
  140. }
  141. }
  142. public Object remove() {
  143. boolean flag = false;
  144. Pair tmp = new Pair();
  145. if (bag.getMas().length == 0) return tmp;
  146. while (!flag) {
  147. int R = (int) Math.round(Math.random() * (bag.getMas().length - 1));
  148. for (int k = 0; k < bag.getMas().length; k++) {
  149. if (bag.getMas()[k] != null && R == k) {
  150. tmp = (Pair)bag.getMas()[k];
  151. System.out.println("Пара значений ");
  152. ((Pair<?, ?>) bag.getMas()[k]).show();
  153. System.out.print(" удалена");
  154. bag.getMas()[k]=null;
  155. flag = true;
  156. break;
  157. }
  158. }
  159. }
  160. return tmp;
  161. }
  162. public final Object retElem(int i) {
  163. return bag.getMas()[i];
  164. }
  165. public final int retSize(){return this.bag.retSize();}
  166. public void show() {
  167. for (int i=0;i<bag.getMas().length;i++) {
  168. if(bag.getMas()[i]!=null)
  169. System.out.print(bag.getMas()[i] + " ");
  170. }
  171. System.out.println();
  172. }
  173. }
  174.  
  175. class GPairBag<T1, T2> {
  176. private PairBag pairBag;
  177.  
  178. public GPairBag(int length) {
  179. this.pairBag = new PairBag(length);
  180. }
  181.  
  182. public int retSize() {
  183. return this.pairBag.retSize();
  184. }
  185.  
  186.  
  187. public void add(T1 value1, T2 value2) {
  188. this.pairBag.add(value1, value2);
  189. }
  190.  
  191. public void remove() {
  192. this.pairBag.remove();
  193. }
  194.  
  195. public Pair<T1, T2> ret(int i) {
  196. return (Pair<T1, T2>) this.pairBag.retElem(i);
  197. }
  198. }
  199.  
  200. class GenericPairBag<T1,T2>{
  201. ArrayList<Pair<T1,T2>> mas;
  202. public GenericPairBag(int n) {
  203. mas=new ArrayList<>(n);
  204. for(int i=0;i<n;i++){
  205. mas.set(i,null);
  206. }
  207. }
  208.  
  209. public void add(T1 num,T2 num1) {
  210. int count = -1;
  211. boolean flag = false;
  212. Pair pair1 = Pair.make_pair(num,num1);
  213. int r = (int) Math.round(Math.random() * (mas.size() - 1));
  214. while (!flag) {
  215. for (int k = 0; k < mas.size(); k++) {
  216. if (mas.get(k) == null) {
  217. if(r==k) {
  218. mas.set(k,pair1);
  219. System.out.println("Пара значений ");
  220. pair1.show();
  221. System.out.print("добавлена в мешок");
  222. System.out.println();
  223. flag = true;
  224. break;
  225. }
  226. } else count++;
  227. }
  228. r = (int) Math.round(Math.random() * (mas.size() - 1));
  229. if (mas.size() - 1 == count) {
  230. System.out.println("Мешок полон");
  231. break;
  232. }
  233. }
  234. }
  235. public Pair remove() {
  236. boolean flag = false;
  237. Pair tmp = new Pair();
  238. if (mas.size() == 0) return tmp;
  239. while (!flag) {
  240. int R = (int) Math.round(Math.random() * (mas.size() - 1));
  241. for (int k = 0; k < mas.size(); k++) {
  242. if (mas.get(k) != null && R == k) {
  243. tmp = mas.get(k);
  244. System.out.println("Пара значений ");
  245. mas.get(k).show();
  246. System.out.print(" удалена");
  247. mas.set(k,null);
  248. flag = true;
  249. break;
  250. }
  251. }
  252. }
  253. return tmp;
  254. }
  255. public final Pair retElem(int i) {
  256. return mas.get(i);
  257. }
  258. public final int retSize(){return mas.size();}
  259. public void show() {
  260. for (int i=0;i<mas.size();i++) {
  261. if(mas.get(i)!=null)
  262. System.out.print(mas.get(i) + " ");
  263. }
  264. System.out.println();
  265. }
  266. }
  267.  
  268. class DList<T1, T2> {
  269.  
  270. private ArrayList<T1> m_arr;
  271. private ArrayList<ArrayList<T2>> m_list_arr;
  272.  
  273. public DList() {
  274. m_arr = new ArrayList<>();
  275. m_list_arr = new ArrayList<>();
  276. }
  277.  
  278. public void addList(T1 list_id, ArrayList<T2> arr) {
  279. if (!m_arr.contains(list_id)) //if the id is not the list1
  280. {
  281. m_arr.add(list_id); //add id to the list1
  282. m_list_arr.add(arr); //add the list to the m_list_arr
  283. } else {
  284. int ind = m_arr.indexOf(list_id); //if the id is already int the list1, find index of that id
  285.  
  286. m_list_arr.add(ind, arr); //add the list to the respective list in m_list_arr
  287. }
  288. }
  289.  
  290. public void deleteList(int i) {
  291. if (i >= 0) {
  292. if (i < m_arr.size()) {
  293. m_arr.remove(i);
  294. m_list_arr.remove(i);
  295. } else {
  296. System.out.println("Индекс должен быть меньше чем " + m_arr.size());
  297. }
  298. } else {
  299. System.out.println("Индекс не должен быть отрицательным");
  300. }
  301. }
  302.  
  303. public void deleteList(T1 id) {
  304. if (m_arr.contains(id)) //if m_arr contains the id, find its index and delete it
  305. {
  306. int ind = m_arr.indexOf(id);
  307. m_arr.remove(ind);
  308. m_list_arr.remove(ind);
  309. } else {
  310. System.out.println("Здесь нет такого элемента");
  311. }
  312.  
  313. }
  314.  
  315. public ArrayList<T2> getList(int i) {
  316. ArrayList<T2> temp_list = null;
  317.  
  318. if (i >= 0) {
  319. if (i < m_arr.size()) {
  320. temp_list = m_list_arr.get(i);
  321. } else {
  322. System.out.println("Индекс должен быть меньше чем " + m_arr.size());
  323. }
  324. } else {
  325. System.out.println("Индекс должен быть неотрицательным");
  326. }
  327.  
  328. return temp_list;
  329. }
  330.  
  331. public ArrayList<T2> getList(T1 id) {
  332. ArrayList<T2> temp_list = null;
  333.  
  334. if (m_arr.contains(id)) {
  335. temp_list = m_list_arr.get(m_arr.indexOf(id));
  336. } else {
  337. System.out.println("Здесь нет элемента с таким значением");
  338. }
  339.  
  340. return temp_list;
  341. }
  342. }
  343.  
  344. class AWM {
  345.  
  346. private Integer[] coins;
  347.  
  348. public AWM(Integer[] arr_coins) {
  349. coins = arr_coins;
  350. }
  351.  
  352. public ArrayList<Integer> GetMoneySet(int amount_money) {
  353. int sum = 0;
  354. ArrayList<Integer> arr_coins = new ArrayList<>();
  355.  
  356. Arrays.sort(coins);
  357.  
  358. System.out.println("After sorting: ");
  359. System.out.println(Arrays.toString(coins));
  360.  
  361. int temp = amount_money;
  362.  
  363. for (int j = coins.length - 1; j >= 0; j--) {
  364. if (temp - coins[j] >= 0)
  365. {
  366. arr_coins.add(coins[j]);
  367. temp -= coins[j];
  368. }
  369. }
  370.  
  371. return arr_coins;
  372. }
  373. }
  374.  
  375. class Person {
  376. private String firstName;
  377. private String lastname;
  378. private int age;
  379.  
  380. public Person(String firstName, String lastname) {
  381. this.firstName = firstName;
  382. this.lastname = lastname;
  383. }
  384.  
  385. public Person(String firstName, String lastname, int age) {
  386. this.firstName = firstName;
  387. this.lastname = lastname;
  388. this.age = age;
  389. }
  390.  
  391. public String getFirstName() {
  392. return this.firstName;
  393. }
  394.  
  395. public String getLastname() {
  396. return this.lastname;
  397. }
  398.  
  399. public int getAge() {
  400. return this.age;
  401. }
  402.  
  403. public void view() {
  404. System.out.println("First name: " + this.firstName);
  405. System.out.println("Last name: " + this.lastname);
  406. System.out.println("Age: " + this.age);
  407. }
  408. }
  409.  
  410. abstract class HashFunction<K> {
  411. protected final int size;
  412.  
  413. public abstract int hash(K var1);
  414.  
  415. public HashFunction(int size) {
  416. this.size = size;
  417. }
  418. }
  419. class StrHashFunction<K> extends HashFunction<K> {
  420. public StrHashFunction(int size) {
  421. super(size);
  422. }
  423.  
  424. public int hash(K key) {
  425. int p = 53,p_pow=1;
  426. Integer hash=0;
  427. char[] arr = key.toString().toCharArray();
  428. for(var i:arr){
  429. hash += (i - 'a' + 1) * p_pow;
  430. p_pow *= p;
  431. }
  432.  
  433. return hash;
  434. }
  435. }
  436. class HashTable<K, T> {
  437. private final ArrayList<ArrayList<Pair<K, T>>> table;
  438. private final StrHashFunction<K> func;
  439. private final int size;
  440.  
  441. public HashTable(int n) {
  442. this.size = n;
  443. this.func = new StrHashFunction(this.size);
  444. this.table = new ArrayList(this.size);
  445.  
  446. for(int i = 0; i < n; ++i) {
  447. this.table.add(new ArrayList());
  448. }
  449.  
  450. }
  451.  
  452. public T find(K key) {
  453. int index = this.func.hash(key);
  454. Iterator var3 = (this.table.get(index)).iterator();
  455.  
  456. Pair l;
  457. do {
  458. if (!var3.hasNext()) {
  459. return null;
  460. }
  461.  
  462. l = (Pair)var3.next();
  463. } while(!l.getFirst().equals(key));
  464.  
  465. return (T) l.getSecond();
  466. }
  467.  
  468. public void add(K key, T value) {
  469. int hash = this.func.hash(key);
  470. (this.table.get(hash)).add(new Pair(key, value));
  471. }
  472.  
  473. public boolean delete(K key) {
  474. int index = this.func.hash(key);
  475. T del = this.find(key);
  476. if (del == null) {
  477. return false;
  478. } else {
  479. (this.table.get(index)).remove(key);
  480. return true;
  481. }
  482. }
  483. }
  484. public class Main {
  485.  
  486. public static void main(String[] args) {
  487.  
  488. Pair.make_pair(5, "s");
  489. Pair pair=new Pair<>();
  490. pair.setFirst(1);
  491. pair.setSecond("cat");
  492. pair.show();
  493. System.out.println();
  494. Bag bag = new Bag(5);
  495. bag.add(5);
  496. bag.add(1);
  497. bag.add(52);
  498. bag.add(-6);
  499. bag.add(3);
  500. bag.add(3);
  501. bag.add(4);
  502. bag.add(8);
  503. System.out.println(bag.retSize());
  504. System.out.println();
  505. System.out.println(bag.retElem(1));
  506. System.out.println();
  507. bag.show();
  508. bag.remove();
  509. bag.show();
  510. bag.remove();
  511. bag.show();
  512. bag.remove();
  513. bag.show();
  514.  
  515.  
  516. PairBag pairbag = new PairBag(5);
  517. pairbag.add(7, "cats");
  518. pairbag.add(5, "dogs");
  519. pairbag.add(10, "parrots");
  520. pairbag.add(2, "bears");
  521. pairbag.add(1, "tiger");
  522. pairbag.show();
  523.  
  524.  
  525. DList list=new DList<>();
  526. ArrayList<Integer> list1=new ArrayList<>();
  527. list1.add(1);
  528. list1.add(2);
  529. list1.add(5);
  530. list1.add(10);
  531.  
  532. list.addList(15,list1);
  533. }
  534. }
  535.  
  536.  
  537.  
  538.  
Advertisement
Add Comment
Please, Sign In to add comment