hw4 completed

This commit is contained in:
2020-04-10 21:05:42 -06:00
parent 15ee96289e
commit f19d4ce904
41 changed files with 494 additions and 0 deletions

View File

@@ -0,0 +1,16 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vickrey Clark Grove Auction", "Vickrey Clark Grove Auction\Vickrey Clark Grove Auction.csproj", "{1B292671-CF11-4296-B02B-D20E139CDDE5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1B292671-CF11-4296-B02B-D20E139CDDE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B292671-CF11-4296-B02B-D20E139CDDE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B292671-CF11-4296-B02B-D20E139CDDE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1B292671-CF11-4296-B02B-D20E139CDDE5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,118 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
namespace Vickrey_Clark_Grove_Auction
{
internal static class VCGAuction
{
public static void Main(string[] args)
{
var parameters = GetAuctionParameters();
CalculateAgentCost(parameters);
}
private static List< Tuple<int, double>> GetBids(int biddersCount)
{
Console.WriteLine("\nEnter bids for each bidder: ");
var bids = new List< Tuple<int, double>>();
for (var i = 0; i < biddersCount; i++)
{
var success = false;
while(!success)
{
Console.WriteLine($"A{i}'s bid amount: ");
var input = Console.ReadLine()?.Split().Select(x => double.TryParse(x, out var i) ? i : -1).ToList();
if (input == null || input.Count != 1)
Console.WriteLine("Enter correct number of integers!");
else if (Math.Abs(input[0] - (-1)) < 0)
Console.WriteLine("Enter valid input!");
else
{
success = true;
bids.Add(new Tuple<int, double>(bids.Count, input[0]));
}
}
}
return bids;
}
private static Tuple<int, int> GetBidderCountAdvertisingCount()
{
var success = false;
var biddersAndSlots = new List<int>();
while (!success)
{
Console.WriteLine(
$"Please input the auctions parameters in the form <number of bidders> <number of advertising slots>: ");
biddersAndSlots = Console.ReadLine()?.Split().Select(x => Int32.TryParse(x, out var i) ? i : -1).ToList();
if (biddersAndSlots == null || biddersAndSlots.Count != 2)
Console.WriteLine("Enter correct number of integers!");
else if (biddersAndSlots.Contains(-1))
Console.WriteLine("Enter valid input!");
else
success = true;
}
var bidderCount = biddersAndSlots[0];
var advertisingCount = biddersAndSlots[1];
var bidderAndAdvertisingCount = new Tuple<int, int>(bidderCount, advertisingCount);
return bidderAndAdvertisingCount;
}
private static Tuple<List<int>, List<Tuple<int, double>>> GetAuctionParameters()
{
var (bidCount, adCount) = GetBidderCountAdvertisingCount();
var slotClickCount = GetAdClickCount(adCount);
var bids = GetBids(bidCount);
var info = new Tuple<List<int>, List<Tuple<int, double>>>(slotClickCount, bids);
return info;
}
private static List<int> GetAdClickCount(int slotCount)
{
Console.WriteLine("\nEnter number of clicks for each Ad placement 0 being the top: ");
var clickCounts = new List<int>();
for (var i = 0; i < slotCount; i++)
{
var success = false;
while(!success)
{
Console.WriteLine($"Ad Placement {i}: ");
var input = Console.ReadLine()?.Split().Select(x => Int32.TryParse(x, out var i) ? i : -1).ToList();
if (input == null || input.Count != 1)
Console.WriteLine("Enter correct number of integers!");
else if (input[0] == -1)
Console.WriteLine("Enter valid input!");
else
{
success = true;
clickCounts.Add(input[0]);
}
}
}
return clickCounts;
}
private static void CalculateAgentCost(Tuple<List<int>, List<Tuple<int, double>>> parameters)
{
var ci = new CultureInfo("en-us");
var bids = parameters.Item2;
bids.OrderBy(x => x.Item2);
bids.Reverse();
var clicks = parameters.Item1;
for (var i = 0; i < bids.Count; i++)
{
var total = 0.0;
for (var j = i; j < clicks.Count && j + 1 < bids.Count; j++)
{
total += bids[j+1].Item2 * (clicks[j] - (j + 1 == clicks.Count? 0 : clicks[j + 1]));
}
Console.WriteLine($"A{bids[i].Item1} pays: {total.ToString("C2",ci)}");
}
}
}
}

View File

@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<RootNamespace>Vickrey_Clark_Grove_Auction</RootNamespace>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.0": {
"Vickrey Clark Grove Auction/1.0.0": {
"runtime": {
"Vickrey Clark Grove Auction.dll": {}
}
}
}
},
"libraries": {
"Vickrey Clark Grove Auction/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

View File

@@ -0,0 +1,9 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"/Users/bradybodily/.dotnet/store/|arch|/|tfm|",
"/Users/bradybodily/.nuget/packages",
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
]
}
}

View File

@@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.0.0"
}
}
}

View File

@@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.0": {
"Vickrey Clark Grove Auction/1.0.0": {
"runtime": {
"Vickrey Clark Grove Auction.dll": {}
}
}
}
},
"libraries": {
"Vickrey Clark Grove Auction/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

View File

@@ -0,0 +1,9 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"/Users/bradybodily/.dotnet/store/|arch|/|tfm|",
"/Users/bradybodily/.nuget/packages",
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
]
}
}

View File

@@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.0.0"
}
}
}

View File

@@ -0,0 +1,16 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Generated by the MSBuild WriteCodeFragment class.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Vickrey Clark Grove Auction")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Vickrey Clark Grove Auction")]
[assembly: System.Reflection.AssemblyTitleAttribute("Vickrey Clark Grove Auction")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -0,0 +1,11 @@
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Debug/netcoreapp3.0/Vickrey Clark Grove Auction
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.deps.json
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.runtimeconfig.json
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.runtimeconfig.dev.json
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.dll
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.pdb
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.csprojAssemblyReference.cache
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.AssemblyInfoInputs.cache
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.AssemblyInfo.cs
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.dll
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Debug/netcoreapp3.0/Vickrey Clark Grove Auction.pdb

View File

@@ -0,0 +1,16 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Generated by the MSBuild WriteCodeFragment class.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Vickrey Clark Grove Auction")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Vickrey Clark Grove Auction")]
[assembly: System.Reflection.AssemblyTitleAttribute("Vickrey Clark Grove Auction")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -0,0 +1,11 @@
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Release/netcoreapp3.0/Vickrey Clark Grove Auction
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Release/netcoreapp3.0/Vickrey Clark Grove Auction.deps.json
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Release/netcoreapp3.0/Vickrey Clark Grove Auction.runtimeconfig.json
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Release/netcoreapp3.0/Vickrey Clark Grove Auction.runtimeconfig.dev.json
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Release/netcoreapp3.0/Vickrey Clark Grove Auction.dll
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/bin/Release/netcoreapp3.0/Vickrey Clark Grove Auction.pdb
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Release/netcoreapp3.0/Vickrey Clark Grove Auction.csprojAssemblyReference.cache
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Release/netcoreapp3.0/Vickrey Clark Grove Auction.AssemblyInfoInputs.cache
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Release/netcoreapp3.0/Vickrey Clark Grove Auction.AssemblyInfo.cs
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Release/netcoreapp3.0/Vickrey Clark Grove Auction.dll
/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/Release/netcoreapp3.0/Vickrey Clark Grove Auction.pdb

View File

@@ -0,0 +1,5 @@
{
"version": 1,
"dgSpecHash": "9VuZpaTk/M0EvVaNg8wPrZc/uPlhz1IfwZ1CXATqTLotYDn2OdSTUTcTtNMLu8wIpl7y5T1yQMvIsQo7OsLhcw==",
"success": true
}

View File

@@ -0,0 +1,55 @@
{
"format": 1,
"restore": {
"/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction.csproj": {}
},
"projects": {
"/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction.csproj",
"projectName": "Vickrey Clark Grove Auction",
"projectPath": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction.csproj",
"packagesPath": "/Users/bradybodily/.nuget/packages/",
"outputPath": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/",
"projectStyle": "PackageReference",
"fallbackFolders": [
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
],
"configFilePaths": [
"/Users/bradybodily/.config/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"netcoreapp3.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp3.0": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp3.0": {
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/Users/bradybodily/.nuget/packages/</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/Users/bradybodily/.nuget/packages/;/usr/local/share/dotnet/sdk/NuGetFallbackFolder</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.2.0</NuGetToolVersion>
</PropertyGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,61 @@
{
"version": 3,
"targets": {
".NETCoreApp,Version=v3.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
".NETCoreApp,Version=v3.0": []
},
"packageFolders": {
"/Users/bradybodily/.nuget/packages/": {},
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction.csproj",
"projectName": "Vickrey Clark Grove Auction",
"projectPath": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction.csproj",
"packagesPath": "/Users/bradybodily/.nuget/packages/",
"outputPath": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/",
"projectStyle": "PackageReference",
"fallbackFolders": [
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
],
"configFilePaths": [
"/Users/bradybodily/.config/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"netcoreapp3.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp3.0": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp3.0": {
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true
}
}
}
}

View File

@@ -0,0 +1,43 @@
{
"version": "1.0.0",
"restore": {
"projectUniqueName": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction.csproj",
"projectName": "Vickrey Clark Grove Auction",
"projectPath": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction.csproj",
"outputPath": "/Users/bradybodily/Repositories/CS5110_Multi_Agent/Vickrey Clark Grove Auction/Vickrey Clark Grove Auction/obj/",
"projectStyle": "PackageReference",
"fallbackFolders": [
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
],
"originalTargetFrameworks": [
"netcoreapp3.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp3.0": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp3.0": {
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true
}
}
}

7
Voting/Voting/Bucklin.cs Normal file
View File

@@ -0,0 +1,7 @@
namespace Voting
{
public class Bucklin
{
}
}

View File

@@ -0,0 +1,7 @@
namespace Voting
{
public class Copeland
{
}
}

View File

@@ -0,0 +1,7 @@
namespace Voting
{
public class MajorityGraph
{
}
}

View File

@@ -0,0 +1,7 @@
namespace Voting
{
public class PrintGraph
{
}
}