1 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 13:53:46 ID:jW5p6F/e.net] プログラミングのお題スレです。 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 結果がある場合はそれも 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part17 https://mevius.5ch.net/test/read.cgi/tech/1584031367/
982 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 18:40:06.62 ID:KOddDUPF.net] >>964 Ruby gets.split(?,).each_cons(2).tap{|a| p 1.0 * a.count{|b| !b.uniq[1]}/ a.size} # => 0.3333333333333333
983 名前:デフォルトの名無しさん [2020/11/15(日) 18:41:22.95 ID:UMNa3GdF.net] はやいな
984 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:20:51.56 ID:8j4ATkh0.net] >>964 JavaScript let hits = 0 const input = '曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴'.split `,` input.reduce((acc, v) => (hits += acc == v ? 1 : 0, v)) console.log(hits / (input.length - 1)) //=> 0.3333333333333333
985 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:22:58.52 ID:KOddDUPF.net] >>967 .split(`,`) では
986 名前:デフォルトの名無しさん mailto:sage [2020/11/15(日) 20:23:55.05 ID:KOddDUPF.net] すまん。バッククウォートだった。
987 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 00:51:51.08 ID:lyH8UsEw.net] >>958 @echo off &setlocal enabledelayedexpansion for /f "delims=:" %%A in ('findstr /en ARGS "%~0"') do set /a L=%%A, n=12 &REM nは出力個数 for /f "usebackq skip=%L% delims=" %%A in ("%~0") do set "i="&(for %%B in (%%A) do set /a i+=1)&echo %%A&set "S="&(for /L %%D in (1,1,%n%) do call :RAND!i! %%A&(if defined r set "S=!S! !r!" &set "r="))&echo=!S!&echo= set /p<nul=終了&pause >nul &exit /b :: a〜b間の偶数をrandom出力 :RAND2 setlocal &REM VAR= a b c r f if %1 NEQ %2 ((if %1 LSS %2 (set /a a=%1+1, b=%2) else set /a a=%2+1, b=%1) &set /a "c=b-a+1, r=((%random%<<15)+%random%)%%c+a, r&=~1") else set /a "f=%1&1" &if !f! EQU 0 set r=%1 endlocal &set "r=%r%" &exit /b :: [開始の数] [増分] [終了の数] を引数として条件を満たす値をrandom出力 :RAND3 setlocal &REM VAR= a r if %2 NEQ 0 set /a "a=(%3-%1)/%2" &if !a! LSS 0 set "a=" &REM [ else set "a="] 省略:上位環境でaが使用されている場合には必要 set /a "r=((%random%<<15)+%random%)%%(a+1)*%2+%1" &REM set /aでは存在しない変数は0として扱われる endlocal &set "r=%r%" &exit /b :: ARGS -3 9 3 -5 4 4 5 5 1 0 2 -5 2 2 2 -3 -12 2 3 -4 -256 040 0x100 0400 ~0x1F ~0xff
988 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 03:31:51.13 ID:apQPm4KR.net] >>965 haskell import Data.List str = "曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴" accuracy x = let pairs = id . map ( take 2 . reverse ) -- [ "BA", "CB", "DC",..] . drop 2 -- [ "AB", "ABC",..] . inits -- [ "", "A", "AB",..] . filter ( /= ',' ) -- "ABCD.." $ x successes = filter ( \x -> head x == last x ) pairs nP = genericLength pairs nS = genericLength successes in nS / nP main = print $ accuracy str
989 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 03:32:04.47 ID:lyH8UsEw.net] >>964 bat @echo off &setlocal enabledelayedexpansion set /a i=-1, match=0 for %%A in (曇,晴,曇,曇,晴,曇,曇,雨,雨,雨,曇,曇,晴,曇,雨,曇,雨,曇,曇,曇,晴,曇,雨,晴,晴,晴,晴,曇,晴,曇,晴) do ( set /a i+=1 if "!S!"=="%%A" set /a match+=1 set s=%%A ) :: echo 一致数/比較回数 : %match%/%i% set /a a=match, b=i :EUCLID_GCD if %a% NEQ 0 set /a "c=a, a=b%%a, b=c" &goto :EUCLID_GCD set /a match/=b, i/=b if %match% NEQ 0 (echo 確率 : %match%/%i%) else echo 確率 : 0 pause
990 名前:デフォルトの名無しさん [2020/11/20(金) 19:52:50.75 ID:HawO8Ftl.net] >>951 Kotlin https://paiza.io/projects/AeE4_7EmFluzVxuefBJmDw
991 名前:とくめい mailto:kakeruyamasato@gmail.com [2020/11/24(火) 01:34:45.23 ID:SQQDs1Pp.net] kakeruyamasato@gmail.comこのメアドを悪用してみせて
992 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 08:07:25.33 ID:aaTbFie9.net] 通報しますた
993 名前:デフォルトの名無しさん [2020/11/25(水) 01:49:24.25 ID:O2Mln20T.net] >>964 Kotlin https://paiza.io/projects/-bhKDI048mc0kOJzIFqOHA
994 名前:デフォルトの名無しさん mailto:sage [2020/11/26(木) 19:02:45.00 ID:ACzSTlzf.net] >>951 a,b,c = [1,2,10] puts ((a..c) % b).to_a.shuffle
995 名前:デフォルトの名無しさん [2020/11/27(金) 01:08:20.91 ID:bIFui41M.net] >>977 なんていう言語?
996 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 02:57:17.73 ID:ocMZsxYX.net] >>978 rubyでしょ
997 名前:デフォルトの名無しさん [2020/11/27(金) 19:31:40.66 ID:Pnsgs34G.net] rubyだったか。
998 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 00:37:28.60 ID:PcPNtVOH.net] %がわからないって怒られた
999 名前:デフォルトの名無しさん [2020/11/28(土) 07:20:49.13 ID:mYohOVrw.net] お題 以下を表示する Monday Tuesday Wednesday Thursday Friday Saturday Sunday
1000 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 07:34:45.42 ID:CtkueG9H.net] >>982 bat @echo.以下を表示する @echo.Monday @echo.Tuesday @echo.Wednesday @echo.Thursday @echo.Friday @echo.Saturday @echo.Sunday
1001 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 08:05:44.72 ID:nEfgRBi9.net] 意外と難しいな
1002 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 08:40:11.81 ID:wyvnQiBB.net] >>982 Ruby puts Date::DAYNAMES.rotate # => Monday Tuesday Wednesday Thursday Friday Saturday Sunday
1003 名前:デフォルトの名無しさん [2020/11/28(土) 09:00:26.43 ID:2Muxtrov.net] >>977 問題の解釈違わねえ?
1004 名前:デフォルトの名無しさん [2020/11/28(土) 09:12:26.58 ID:nEfgRBi9.net] >>982 js const range = v => [...Array(v).keys()] const DAY_MS = 24 * 60 * 60 * 1000 const weekday = d => d.toLocaleString('en', { weekday: 'long' }) console.log(range(7).map(i => weekday(new Date((i + 4) * 24 * 60 * 60 * 1000))).join("\n"))
1005 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 11:36:22.72 ID:FGpMIdZG.net] >>981 ( 1..10 ) % 2 range に、% というメソッドは無い!
1006 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 12:27:13.39 ID:GOv1h+p2.net] >>988 NEWS for Ruby 2.6.0 2.5.0 以降の変更 https://docs.ruby-lang.org/ja/2.6.0/doc/news=2f2_6_0.html > Range > 新規メソッド > Range#% が追加されました。 [feature#14697]
1007 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 12:38:57.57 ID:L52xXSLK.net] 予想通りの流れになってくれて何より
1008 名前:977 mailto:sage [2020/11/28(土) 14:12:40.28 ID:FGpMIdZG.net] ruby -e 'p ( ( 1..5 ) % 2 ).to_a' #=> [1, 3, 5] 2 は、各ステップの大きさ
1009 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 16:09:49.88 ID:myGQAvEM.net] ダメだ オンラインでRuby 2.6使えるとこ見つからない どっかない?
1010 名前:デフォルトの名無しさん [2020/11/28(土) 16:34:18.46 ID:gB71rnHS.net] >>992 ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux] https://www.jdoodle.com/execute-ruby-online/ ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux] https://techiedelight.com/compiler/ ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux] https://paiza.io/en/projects/new?language=ruby
1011 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 16:39:08.00 ID:nEfgRBi9.net] jdoodle初めて知った 手元の汚い環境にもrepelにもpaizaにもなかったとき使おう
1012 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:26:12.48 ID:FGpMIdZG.net] paiza は、いつも新しい codepad は、古いような気がする
1013 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:30:47.77 ID:FGpMIdZG.net] 漏れは、Windows 10, WSL, Ubuntu 18.04 で、 VSCode の拡張機能、Remote WSL も使う Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、 ruby 2.6.6, node 12.16.2 を入れた 対応している言語を表示すると、 anyenv install --list Renv, crenv, denv, erlenv, exenv goenv, hsenv, jenv, jlenv, luaenv nodenv, phpenv, plenv, pyenv, rbenv sbtenv, scalaenv, swiftenv, tfenv Julia のjlenv も追加された。 anyenvと同様のツールに、asdf もある
1014 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 17:57:16.56 ID:myGQAvEM.net] >>993 thx でもiphoneでどのサイトもコピペができないorz なんでなんだろう?
1015 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 18:01:21.11 ID:myGQAvEM.net] とりあえず自分で打ち込んで試した shuffleはランダムに並べ替えみたいだからちょっと違うかな
1016 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 22:44:23.07 ID:wyvnQiBB.net] >>998 shuffleの代わりにsampleを使うといい
1017 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 06:10:23.39 ID:LsAPFm47.net] >>982 bat :: 年月日を元に曜日を返す。 No args validation. 引数が無ければシステム時間 @echo off &setlocal enabledelayedexpansion if not "%~1"=="" set "date=%~1" :: set "date=2020.09.09" set i=0 for %%a in (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Y,M,D) do set "wd!i!=%%a"&set /a i+=1 set i=7 for /f "tokens=1-3 delims==/-.:,;()_・年月日 " %%a in ("%date%") do for %%d in (%%a %%b %%c) do for /f "tokens=* delims=0" %%e in ("%%d") do for /f %%i in ("!i!") do set /a !wd%%i!=%%e,i+=1 :: echo=%Y%,%M%,%D%, set /a h=(365*Y+(Y-1)/4-(Y-1)/100+(Y-1)/400+(M+7)/10*(30*(M-3)+(3*M-7)/5+59+D-1)+(1/(Y%%4+1)-1/(Y%%100+1)+1/(Y%%400+1)+(M+7)/10)/2)%%7 echo=!wd%h%! pause&exit /b
1018 名前:デフォルトの名無しさん [2020/11/29(日) 12:05:03.89 ID:POmPIOqu.net] >>982 Julia using Dates for w=1:7 println(Dates.format(Date(1,1,w), "E")) end
1019 名前:デフォルトの名無しさん [2020/11/29(日) 14:25:29.24 ID:KxupmnON.net] >>982 Kotlin script println(java.text.DateFormatSymbols(java.util.Locale.ENGLISH).getWeekdays().let { wd -> ((2..6) + 1).map { wd[it] } }.join ToString("\n")) Javaのライブラリをそのまま使ってやってるので1が日曜で7が土曜になってしまい、 それを並び替えてから出力する必要があって少し複雑になった。
1020 名前:253 mailto:sage [2020/11/29(日) 15:02:42.80 ID:onV9IrOo.net] >>982 Perl5 use Time::Piece; use Time::Seconds; $
1021 名前:t = Time::Piece->strptime('210201','%y%m%d'); for (0..6) { print $t->fullday."\n"; $t += ONE_DAY } 実行結果 ~ $ perl 18_971_fullday.pl Monday Tuesday Wednesday Thursday Friday Saturday Sunday [] [ここ壊れてます]
1022 名前:253 mailto:sage [2020/11/29(日) 17:21:11.49 ID:onV9IrOo.net] >>982 Perl5、>>1003 のもうチョイ手抜き版 use Time::Piece; for (1..6,0) { print Time::Piece::fullday([(0)x6, $_])."\n" } ~ $ perl 18_971_fullday.pl Monday Tuesday Wednesday Thursday Friday Saturday Sunday
1023 名前:デフォルトの名無しさん [2020/11/29(日) 20:08:13.17 ID:idUZlJAo.net] >>982 Java https://paiza.io/projects/F3UDtssyIBLD9KwEcaTfjA
1024 名前:デフォルトの名無しさん [2020/11/29(日) 20:39:34.37 ID:idUZlJAo.net] お題 配列を入力として受け取り 値が連続するサブ配列のうち、合計が最大のものを出力してください 例 入力:[−2, 1, −3, 4, −1, 2, 1, −5, 4] 出力:[4, −1, 2, 1]
1025 名前: mailto:sage [2020/11/29(日) 21:07:17.97 ID:POdKASdd.net] >>1006 >サブ配列 の定義を教えてください
1026 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 21:15:00.96 ID:sOEBQUsx.net] 値が連続しないサブ配列とは?
1027 名前:デフォルトの名無しさん [2020/11/29(日) 21:21:35.35 ID:idUZlJAo.net] >>1007 教えません >>1008 [1, 4, 2, 1, 4] とか
1028 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 21:26:09.30 ID:sOEBQUsx.net] [4, −1, 2, 1]は値が連続するサブ配列で [1, 4, 2, 1, 4]は値が連続しないサブ配列? 連続の定義は?
1029 名前:デフォルトの名無しさん [2020/11/29(日) 21:34:10.34 ID:idUZlJAo.net] >>1010 教えません
1030 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 138日 7時間 40分 24秒
1031 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています