Skip to main content

Word Counter

0 likes • Nov 19, 2022
Java
Loading...
Download

More Java Posts

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[] variables = setVariables(in);
int[] minTerms = setMinTerms(in);
String[] binaryMinTerms = decimalToBinary(variables, minTerms);
ArrayList<Group> groups = computeSuccessiveGroups(minTerms, binaryMinTerms);
displayInput(variables, minTerms);
printPIs(groups, variables);
}
private static char[] setVariables(Scanner in) {
System.out.print("Enter the number of variables: ");
int numVariables = in.nextInt();
char[] variables = new char[numVariables];
System.out.print("Enter each variable separated by spaces: ");
for(int i = 0; i < numVariables; i++) {
variables[i] = in.next().charAt(0);
}
return variables;
}
private static int[] setMinTerms(Scanner in) {
System.out.print("Enter the number of min terms: ");
int numMinTerms = in.nextInt();
int[] minTerms = new int[numMinTerms];
System.out.print("Enter each min term separated by spaces: ");
for(int i = 0; i < numMinTerms; i++) {
minTerms[i] = in.nextInt();
}
return minTerms;
}
private static String[] decimalToBinary(char[] variables, int[] minTerms) {
String[] binaryMinTerms = new String[minTerms.length];
for(int i = 0; i < minTerms.length; i++) {
binaryMinTerms[i] = Integer.toBinaryString(minTerms[i]);
if(binaryMinTerms[i].length() < variables.length) {
String zeros = "";
int len = binaryMinTerms[i].length();
while(len < variables.length) {
zeros = zeros.concat("0");
len++;
}
binaryMinTerms[i] = zeros + binaryMinTerms[i];
}
}
return binaryMinTerms;
}
private static void displayInput(char[] variables, int[] minTerms) {
System.out.print("Function: f(");
for(int i = 0; i < variables.length; i++) {
if(i == variables.length-1)
System.out.print(variables[i]);
else
System.out.print(variables[i] + ", ");
}
System.out.print(") = SIGMAm(");
for(int i = 0; i < minTerms.length; i++) {
if(i == minTerms.length-1)
System.out.print(minTerms[i]);
else
System.out.print(minTerms[i] + ", ");
}
System.out.println(")");
}
private static ArrayList<Group> computeSuccessiveGroups(int[] minTerms, String[] binaryMinTerms) {
ArrayList<Group> groups = new ArrayList<Group>();
for(int i = 0; i < minTerms.length; i++)
groups.add(new Group(Integer.toString(minTerms[i]), binaryMinTerms[i]));
int sizeBeforeRemoval = 0, currentSize;
while(sizeBeforeRemoval != groups.size()) {
currentSize = groups.size();
for(int i = 0; i < currentSize; i++) {
for(int j = i+1; j < currentSize; j++) {
if(differences(groups.get(i).binary, groups.get(j).binary) == 1) {
String combinedBin = combineBinary(groups.get(i).binary, groups.get(j).binary);
groups.get(i).grouped = true;
groups.get(j).grouped = true;
if(isUniqueBin(groups, combinedBin)) {
String newTuple = groups.get(i).decimal + "," + groups.get(j).decimal;
groups.add(new Group(newTuple, combinedBin));
}
else break;
}
}
}
sizeBeforeRemoval = groups.size();
Iterator<Group> iter = groups.iterator();
while(iter.hasNext()) {
Group next = iter.next();
if(next.grouped)
iter.remove();
}
}
return groups;
}
private static int differences(String a, String b) {
int diff = 0;
for(int i = 0; i < a.length(); i++)
if(a.charAt(i) != b.charAt(i))
diff++;
return diff;
}
private static String combineBinary(String a, String b) {
String combined = "";
for(int i = 0; i < a.length(); i++) {
if(a.charAt(i) != b.charAt(i))
combined = combined.concat("-");
else
combined = combined.concat(Character.toString(a.charAt(i)));
}
return combined;
}
private static boolean isUniqueBin(ArrayList<Group> groups, String s) {
for(int i = 0; i < groups.size(); i++)
if(groups.get(i).binary.equals(s))
return false;
return true;
}
private static void printPIs(ArrayList<Group> groups, char[] variables) {
System.out.println("Prime Implicants: ");
for(int i = 0; i < groups.size(); i++)
System.out.println(groups.get(i).decimal + " | " + binaryToMinTerm(variables, groups.get(i).binary));
}
private static String binaryToMinTerm(char[] variables, String s) {
String minTerm = "";
for(int i = 0; i < s.length(); i++) {
if(s.charAt(i) != '-') {
if(s.charAt(i) == '0')
minTerm = minTerm.concat(Character.toString(variables[i]) + "'");
else
minTerm = minTerm.concat(Character.toString(variables[i]));
}
}
return minTerm;
}
}

Puzzle 1

Daedalus
0 likes • Feb 6, 2021
Java
import java.util.Scanner;
/* In Heaven, the seed is tall and the oak small / It's input vital
* "The al-Madinatian," verse 236-37
* tinyurl.com/17snqkfv
* email answer to [email protected]
**/
public class Main
{
public static void main(String args[])
{
int x = 0;
int a, c, m = 10000;
Scanner in = new Scanner(System.in);
System.out.println("Please enter a seed, maximum 3000000:");
x = in.nextInt();
System.out.println("Please input a number, maximum 29:");
a = in.nextInt();
System.out.println("Please input a number, maximum 999999:");
c = in.nextInt();
char menu = 'y';
while(menu != 'n')
{
x = (a*x + c) % m;
System.out.println("The next number is " + x + "\nWould you like another? (y/n)");
menu = in.next().charAt(0);
}
}
}
//██╗  ░█████╗░███╗░░░███╗  ██████╗░░█████╗░███████╗██████╗░░█████╗░██╗░░░░░██╗░░░██╗░██████╗
//██║  ██╔══██╗████╗░████║  ██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗██║░░░░░██║░░░██║██╔════╝
//██║  ███████║██╔████╔██║  ██║░░██║███████║█████╗░░██║░░██║███████║██║░░░░░██║░░░██║╚█████╗░
//██║  ██╔══██║██║╚██╔╝██║  ██║░░██║██╔══██║██╔══╝░░██║░░██║██╔══██║██║░░░░░██║░░░██║░╚═══██╗
//██║  ██║░░██║██║░╚═╝░██║  ██████╔╝██║░░██║███████╗██████╔╝██║░░██║███████╗╚██████╔╝██████╔╝
//╚═╝  ╚═╝░░╚═╝╚═╝░░░░░╚═╝  ╚═════╝░╚═╝░░╚═╝╚══════╝╚═════╝░╚═╝░░╚═╝╚══════╝░╚═════╝░╚═════╝░

Send Email from Java

CodeCatch
0 likes • Nov 19, 2022
Java
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException
{
boolean debug = false;
//Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.example.com");
// create some properties and get the default Session
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++)
{
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Optional : You can also set your custom headers in the Email if you Want
msg.addHeader("MyHeaderName", "myHeaderValue");
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
public static void enu2ecefCov(GMatrix ecefCov, GMatrix enuCov, LLA refLLA) {
double lambda = refLLA.longitude;
double phi = refLLA.latitude;
GMatrix R = new GMatrix(6, 6);
GMatrix Rt = new GMatrix(6, 6);
GMatrix tmp1 = new GMatrix(6, 6);
GMatrix tmp2 = new GMatrix(6, 6);
R.setElement(0, 0, -Math.sin(lambda));
R.setElement(0, 1, -Math.sin(phi)*Math.cos(lambda));
R.setElement(0, 2, Math.cos(phi)*Math.cos(lambda));
R.setElement(1, 0, Math.cos(lambda));
R.setElement(1, 1, -Math.sin(phi)*Math.sin(lambda));
R.setElement(1, 2, Math.cos(phi)*Math.sin(lambda));
R.setElement(2, 0, 0);
R.setElement(2, 1, Math.cos(phi));
R.setElement(2, 2, Math.sin(phi));
R.setElement(3, 3, -Math.sin(lambda));
R.setElement(3, 4, -Math.sin(phi)*Math.cos(lambda));
R.setElement(3, 5, Math.cos(phi)*Math.cos(lambda));
R.setElement(4, 3, Math.cos(lambda));
R.setElement(4, 4, -Math.sin(phi)*Math.sin(lambda));
R.setElement(4, 5, Math.cos(phi)*Math.sin(lambda));
R.setElement(5, 3, 0);
R.setElement(5, 4, Math.cos(phi));
R.setElement(5, 5, Math.sin(phi));
Rt.transpose(R);
tmp1.mul(enuCov, R);
ecefCov.mul(Rt, tmp1);
}

Factorial

CodeCatch
0 likes • Nov 19, 2022
Java
public class Factorial
{
public static void main(String[] args)
{ final int NUM_FACTS = 100;
for(int i = 0; i < NUM_FACTS; i++)
System.out.println( i + "! is " + factorial(i));
}
public static int factorial(int n)
{ int result = 1;
for(int i = 2; i <= n; i++)
result *= i;
return result;
}
}
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode head = new ListNode(0);
ListNode handler = head;
while(l1 != null && l2 != null) {
if (l1.val <= l2.val) {
handler.next = l1;
l1 = l1.next;
} else {
handler.next = l2;
l2 = l2.next;
}
handler = handler.next;
}
if (l1 != null) {
handler.next = l1;
} else if (l2 != null) {
handler.next = l2;
}
return head.next;
}
}