1 名前:デフォルトの名無しさん mailto:sage [2019/07/28(日) 19:39:57.54 ID:832c/ukY.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/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part14 mevius.5ch.net/test/read.cgi/tech/1558168409/
862 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 12:04:34.69 ID:yRKIAYVV.net] >>839 [6, 5, 3, 2, 1] とかだと結果が間違っている上、nilとか足されてひどいことになるyo? p [6, 5, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten} # => [6, 2, 3, 5, 1, nil] 正しくは => [6, 1, 3, 2, 5]
863 名前:デフォルトの名無しさん [2019/10/24(木) 15:41:34.92 ID:gElHX+jG.net] >>832 Kotlin https://paiza.io/projects/RXWCx9-WsZvakBKGgIo1UA やり方は >>834 に書かれている通り。 しかし、もっとスマートな方法はないものか? ありそうだが思い浮かばない。
864 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 16:54:57.81 ID:ZpMPcQ0n.net] >>842 配列コピーしない場合奇数が出たらその後の要素を見て一番小さい奇数と要素の交換でもどう? 配列のコピー不要や。
865 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 21:24:20.41 ID:YtgvOVKx.net] >>832 ruby https://ideone.com/EUWgwy >>832 ocaml https://ideone.com/6SktpO
866 名前:デフォルトの名無しさん mailto:sage [2019/10/24(木) 23:20:25.74 ID:33G0+sWg.net] >>838 さすがJニキ、さっぱりわからん…
867 名前:デフォルトの名無しさん [2019/10/25(金) 00:26:52.21 ID:GgLEjF73.net] アプリ作成したいのですが、素人なのでどなたか相談に乗ってください。 飲み物が入ったコップを定期的に重量を量り、 そのデータを無線で受信してサーバーで記録し プロットするアプリを作りたいです。 またRaspiなどのPCはなしで作りたいのですが 組み込みPC?を使わないとできませんか? またこういったアプリに適した言語などありますでしょうか?
868 名前:デフォルトの名無しさん [2019/10/25(金) 00:32:12.57 ID:D+sRag4r.net] プログラム部分はたいしたことがないとおもうのだが 装置、ハードのほうが大事だろ そもそもプログラムもハード依存するかもしれないし
869 名前:チに既成品なら [] [ここ壊れてます]
870 名前:デフォルトの名無しさん [2019/10/25(金) 00:48:27.50 ID:GgLEjF73.net] ありがとうございます。 ハードウェアの知識が全く無いため困っています。 飼い猫のために水の量を管理してあげたいんです。 下記のような組み合わせで出来そうでしょうか? ADコンバータ KKHMF HX711モジュール 秤量センサー 24位精度ADモジュール 圧力センサーモジュール 重量センサー uxcell 計量ロードセル アルミ合金材質 500g計量 電子天秤 有線 計量センサー
871 名前:デフォルトの名無しさん [2019/10/25(金) 03:57:48.67 ID:uJcHRouN.net] やり方わからないんだけど、カメラで撮影して映像解析して量が分かるのであればスマホやタブレット用のアプリでできそうだよね。 (PCに小さいカメラ付けても良いが)。
872 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 04:08:18.02 ID:rztx2iSz.net] >>848 適切なスレに移動した方がいいぞ
873 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 09:43:45.15 ID:C/odSq3f.net] センサーの話題などは、Linux 板のラズパイのスレで聞けば?
874 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 09:56:31.28 ID:VVjeWd6A.net] >>848 適当なIoTの計り買えば解決 実装はCだろうな
875 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 11:49:06.01 ID:C/odSq3f.net] >>832 Ruby で、 input_ary = [ 6, 5, 4, 3, 2, 1 ] odd_ary = [ ]; index_ary = [ ] input_ary.each_with_index do |num, idx| if num.odd? odd_ary.push num index_ary.push idx end end odd_ary.sort! # ソート # 同時に、複数の配列をループする index_ary.zip( odd_ary ).each { |idx, num| input_ary[ idx ] = num } p input_ary
876 名前:デフォルトの名無しさん [2019/10/25(金) 12:30:51.02 ID:GgLEjF73.net] >> 849 , 850, 851, 852 情報ありがとうございます。 スレチだったみたいで申し訳ないです。 センサーありきなので、Raspiは使わないと思うのですが 板覗いてみます。
877 名前:デフォルトの名無しさん mailto:sage [2019/10/25(金) 14:59:52.83 ID:ylwTeYJx.net] >>832 https://ideone.com/FKifBY C++。クイックソート書けないので謎のソートでお茶を濁す。
878 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 01:38:30 ID:o5w2ifn2.net] お題: 端末上で(´・ω・`)を端から端まで移動し、往復させよ ただし、端についたら(´・ω・`)は増幅し(´・ω・`)(´・ω・`)になる 同様に再び端についたら(´・ω・`)(´・ω・`)は増幅し(´・ω・`)(´・ω・`)(´・ω・`)になる 左右に移動できなくなる又ははみ出す場合は逆に(´・ω・`)を減らしていき、最終的に(´・ω・`)を消滅させよ
879 名前:デフォルトの名無しさん [2019/10/26(土) 06:24:17 ID:2eoY+VbT.net] お題: Unicode 1 文字を与えると East Asian Width に従った属性値を返す関数を作成し、その関数に対して任意の文字を与えてテストするプログラムを作れ。 返す属性値の F, H, W, Na, A, N は文字列でも良いし対応する数値でも良いし enum のような(またはCなら #define されている)名前でも良い。 East Asian Width の一覧は下記URLのテキストの内容を使用する。これを最初に読んで初期化するように作っても良いし、最初からプログラムに適した形式で埋め込まれていても良い。 www.unicode.org/Public/UCD/latest/ucd/EastAsianWidth.txt 参考: 東アジアの文字幅 https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85
880 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 07:11:59 ID:I0XoRu/q.net] お題:>>832 に「偶数要素は2で割って降順ソート」という要件を追加してください すでに回答済
881 名前:みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください [] [ここ壊れてます]
882 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 07:27:04.95 ID:I0XoRu/q.net] >>858 入力例:[0, 9, 8, 4, 6, 5, 1, 2, 7, 3] 出力例:[4, 1, 3, 2, 1, 3, 5, 0, 7, 9]
883 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:01:29.07 ID:/Rj6VhaF.net] >>832 Pharo/Squeak Smalltalk | fn | fn := [:arr | | sortedOdds | sortedOdds := (arr select: #odd) sort readStream. arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [x]] ]. fn value: #(6 5 4 3 2 1) "=> #(6 1 4 3 2 5) " >>835 | fn | fn := [:arr | | sortedOdds sortedHalfEvens | sortedOdds := (arr select: #odd) sort readStream. sortedHalfEvens := ((arr select: #even) sort reversed / 2) readStream. arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [sortedHalfEvens next]] ]. fn value: #(0 9 8 4 6 5 1 2 7 3) "=> #(4 1 3 2 1 3 5 0 7 9) "
884 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:03:35.88 ID:/Rj6VhaF.net] >>860 ×835 → ○>>858
885 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 11:45:52.80 ID:4aRwI3hq.net] >>859 Perl5、最小限でか… @s = (0, 9, 8, 4, 6, 5, 1, 2, 7, 3); @ix = grep{$s[$_] & 1} keys @s; @iy = sort{$s[$a] <=> $s[$b]} @ix; @s[@ix] = @s[@iy]; @iz = grep{~$s[$_] & 1} keys @s; @s[@iz] = map{$_ / 2} reverse sort{$a <=> $b} @s[@iz]; use Data::Dump 'dump'; print dump @s; 実行結果 ~ $ perl 15_859.pl (4, 1, 3, 2, 1, 3, 5, 0, 7, 9)
886 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 12:12:03.02 ID:Zgyrlv2c.net] >>832 ,858 @Mathematica https://ideone.com/0UFN7o
887 名前:デフォルトの名無しさん [2019/10/26(土) 12:22:15.14 ID:GFiKSQ9h.net] >>856 Porwershell。バージョンによってはプロンプト画面に直接貼り付けると$sの文字列が 化けるので、その場合はファイルに保存して実行。 $s = "('・ω・``)" $w = $Host.UI.RawUI.WindowSize.Width - 1 $m = [Math]::Floor($w / 10) foreach ($n in 1..$m + ($m - 1)..0) { $d = $w - 10 * $n foreach ($x in (($d..1), (1..$d))[$n % 2]) { $l = "`r" + " " * $x + $s * $n + " " * ($d - $x) Write-Host $l -NoNewline if (!$n) {Write-Host; break} Sleep -m 20 } }
888 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 13:49:47.32 ID:f6JeNzn+.net] Mathematica12 定義 f1[a_]:=SubsetMap[Sort,a,Position[a,_?OddQ,1]] f2[a_]:=SubsetMap[ReverseSort[#]/2&,f1[a],Position[a,_?EvenQ,1]] 実行結果 f1[{6,5,4,3,2,1}] {6,1,4,3,2,5} f2[{0,9,8,4,6,5,1,2,7,3}] {4,1,3,2,1,3,5,0,7,9}
889 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 17:08:24.41 ID:kYj2w42l.net] >>832 , >>858 Ruby f = -> ary { e, o = ary.partition(&:even?).map(&:sort) ary.map{|v| v.even? ? v : o.shift} } g = -> ary { e, o = ary.partition(&:even?).map(&:sort) ary.map{|v| v.even? ? e.pop >> 1 : o.shift} } p f[[6, 5, 4, 3, 2, 1]] # => [6, 1, 4, 3, 2, 5] p g[[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]] # => [4, 1, 3, 2, 1, 3, 5, 0, 7, 9]
890 名前:デフォルトの名無しさん [2019/10/26(土) 20:25:43.01 ID:XXeS+kK0.net] >>858 c https://ideone.com/g7IC5E
891 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:02:49.24 ID:+YWUVQNg.net] >>856 https://ideone.com/lw7uIj C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。 そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。 しかし、汚くなった無し、思ったより時間がかかってしまった。
892 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:16:30.14 ID:FFSD3o8O.net] >>858 octave https://ideone.com/d5NTlm >>858 ruby https://ideone.com/R93NWY >>858 ocaml https://ideone.com/RTlP5X
893 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:21:47.70 ID:+YWUVQNg.net] >>858 https://ideone.com/7vsaej C++。前のヤツに関数足した。 オーダーが倍になったが改修だとこんなもんだ。
894 名前:蟻人間 mailto:age [2019/10/26(土) 22:38:02.04 ID:Q5f3
] [ここ壊れてます]
895 名前:+aYX.net mailto: お題: あるフォルダ(例えばC:\Windows)についてフォルダの階層構造を木構造(tree)を表すテキストとして出力せよ。 インデントでもいい。罫線を使ってもいい。 [] [ここ壊れてます]
896 名前:デフォルトの名無しさん [2019/10/26(土) 22:38:38.76 ID:T/HAOzs9.net] tree
897 名前:デフォルトの名無しさん mailto:sage [2019/10/26(土) 22:46:14.97 ID:a/Ne+y1n.net] 完
898 名前:蟻人間 mailto:age [2019/10/26(土) 23:33:25.57 ID:0HLEEd3+.net] 熟
899 名前:デフォルトの名無しさん [2019/10/26(土) 23:36:46.58 ID:Up+ppHZL.net] ト
900 名前:デフォルトの名無しさん [2019/10/26(土) 23:56:14.95 ID:mT+r0MIT.net] マ
901 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 01:42:02 ID:98GTxTrH.net] ホ
902 名前:デフォルトの名無しさん [2019/10/27(日) 01:48:49 ID:hTxWtEZY.net] ー
903 名前:デフォルトの名無しさん [2019/10/27(日) 02:14:55 ID:qZK0Jir5.net] ク
904 名前:デフォルトの名無しさん [2019/10/27(日) 12:00:30.73 ID:czi1K5eV.net] >>858-859 PowerShell $a = 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 $b = 0, 0 $i = 0, 0 $odd = {$_ % 2} $b[0] = @($a |? {!(&$odd)} |% {$_ / 2} | sort -descending) $b[1] = @($a |? {&$odd} | sort) $c = $a |% {$b[(&$odd)][$i[(&$odd)]++]} "入力: [" + ($a -join ", ") + "]" "出力: [" + ($c -join ", ") + "]"
905 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 21:46:52.77 ID:JAeIkS65.net] >>858 c https://ideone.com/SwF6Zp
906 名前:デフォルトの名無しさん [2019/10/28(月) 14:33:15.95 ID:kjzN6NI8.net] >>858-859 Haxe で、 https://try.haxe.org/#Bb813
907 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 21:54:57.80 ID:UPe4TNxT.net] Common Lisp >>832 (let* ((l '(6 5 4 3 2 1)) (odds (sort (remove-if-not #'oddp l) #'<))) (mapcar (lambda (x) (if (oddp x) (pop odds) x)) l)) >>858-859 (let* ((l '(0 9 8 4 6 5 1 2 7 3)) (odds (sort (remove-if-not #'oddp l) #'<)) (evens (sort (remove-if-not #'evenp l) #'>))) (mapcar (lambda (x) (if (oddp x) (pop odds) (/ (pop evens) 2))) l))
908 名前:蟻人間 mailto:sage [2019/10/28(月) 22:20:53.11 ID:9dus/Ppg.net] Linuxにこんなコマンドあんのかよお? https://www.adminweb.jp/command/file/index2.html
909 名前:デフォルトの名無しさん [2019/10/28(月) 22:33:53.27 ID:cHOU2eIF.net] >>871 Powershell。標準のtreeコマンドと違い、システム/隠しフォルダも表示する。 バージョンによってはプロンプト画面に貼り付けると罫線文字が消えてしまうので、 その場合はps1ファイルに保存して実行するか、PowerShell ISEに貼り付ける。 function MyTree($path, $branch) { if (!$branch) {$path} $dir = @(ls -Force -PSPath $path -EV e -EA SilentlyContinue |? {$_.PSIsContainer}) if ($e) {$branch + "::アクセス不可"} if (!$dir) {return} 0..($last = $dir.Count - 1) |% { $branch + ("├─", "└─")[$_ -eq $last] + $dir[$_].Name MyTree $dir[$_].FullName ($branch + ("│ ", " ")[$_ -eq $last]) } } MyTree "C:\Windows"
910 名前:デフォルトの名無しさん mailto:age [2019/10/28(月) 23:08:40.85 ID:F/Wh8ChL.net] >>884 100年前からあるよ
911 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 23:13:15.22 ID:uBs49FGp.net] 色わけもされているのが良くあり、たいへん見やすい
912 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2019/10/29(火) 01:01:17 ID:CdNgVa0z.net] お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。
913 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 08:42:30.06 ID:CowX2GWO.net] >>858-859 Ruby で、 input_ary = [ 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 ] even_ary, odd_ary = input_ary.partition( &:even? ) # 偶数・奇数配列 odd_ary.sort! # 奇数要素をソート # 偶数要素は、2で割って降順ソート even_ary.map! { |num| num / 2 } even_ary.sort! even_ary.reverse! p results = input_ary.map { |num| num.even? ? e
914 名前:ven_ary.shift : odd_ary.shift } # 偶数・奇数 [] [ここ壊れてます]
915 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 11:11:57.21 ID:8fHMSau6.net] やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな
916 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 18:19:47.29 ID:BWleRN1J.net] 設定で白い画面にすると心が和らぐかも知れない
917 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 18:42:27.40 ID:plxF2L4V.net] 目がクラッシュ
918 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 21:04:32.22 ID:OodB9NB8.net] 日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください
919 名前:デフォルトの名無しさん [2019/10/29(火) 21:19:03.11 ID:zdS42c06.net] 式波だろオッサン
920 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 22:05:19.10 ID:xXVEd4hK.net] >>893 0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB
921 名前:デフォルトの名無しさん mailto:sage [2019/10/29(火) 22:18:10.10 ID:VtVeF5OO.net] >>893 firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB
922 名前:デフォルトの名無しさん mailto:sage [2019/10/30(水) 00:58:38.18 ID:VQ6oDJg7.net] pingファイルわらた
923 名前:デフォルトの名無しさん mailto:sage [2019/10/30(水) 04:42:26 ID:LML0ucqT.net] アイが隠っている
924 名前:デフォルトの名無しさん [2019/11/01(金) 22:31:20.50 ID:5BPqTvCN.net] お題: 3^3^3^... のような反復指数を10の反復指数に近似するプログラムを作成しなさい。 入力されるそれぞれの指数は1より大きい実数とします。 計算後の最も右の指数xは 1<x≦10 としてください。 例: 3^3^3^3^3^3 = 10^10^10^10^10^1.099 2.718^2.718^2.718^2.718^7.705 = 10^10^10^10^2.983 (5.0e+50)^(6.0e+60)^(7.0e+70)^(8.0e+80)^(9.0e+90) = 10^10^10^10^10^10^1.968 1.1^1.1^1.1^1.1^1.1 = 1.112
925 名前:デフォルトの名無しさん [2019/11/01(金) 23:58:48.16 ID:Yq8XY12s.net] a^n = b^x を解く問題でいいじゃん
926 名前:蟻人間 mailto:sage [2019/11/02(土) 13:25:33.62 ID:OyXmLdGY.net] >>899 演算子^は、左結合、それとも右結合?
927 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 14:21:37.47 ID:ZDjpW1U6.net] >>901 右結合です a^b^c => a^(b^c) 無論 ^はべき乗の演算子です。
928 名前:蟻人間 mailto:sage [2019/11/02(土) 16:24:06.83 ID:3ZL9CX49.net] 10^1〜10^10で二分探索を繰り返しかな?
929 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 17:38:05.70 ID:q/Mbih9P.net] >>899 https://ideone.com/0Xqylu C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる? 三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。
930 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 18:12:47.84 ID:41WzS7Cc.net] >>904 コード一切読んでないけどお前のは間違ってると思うよ
931 名前:デフォルトの名無しさん mailto:sage [2019/11/02(土) 18:39:57.30 ID:q/Mbih9P.net] >>905 意味が解らん。 まぁ、いいけど。
932 名前:デフォルトの名無しさん [2019/11/02(土) 19:40:47.26 ID:0iFQzt0L.net] >>899 PowerShellで最初の2例だけ。 function lg($x) {[Math]::log10($x)} function pow($x, $y) {[Math]::pow($x, $y)} function tetrconv($a) { $k = lg ((pow $a[-2] $a[-1]) * (lg $a[-3]) + (lg (lg $a[-4]))) $b = @(10) * ($a.count - 1) + [Math]::round($k, 3) ($a -join "^") + " = " + ($b -join "^") } tetrconv (@(3) * 6) tetrconv (@(2.718) * 4 + 7.705)
933 名前:デフォルトの名無しさん [2019/11/02(土) 21:32:51.49 ID:0iFQzt0L.net] >>899 最後の2例にも対応した。 function lg($x) {[Math]::log10($x)} function pow($x, $y) {[Math]::pow($x, $y)} function tetrconv($a) { $k = $a[-1] foreach ($i in -2..-$a.count) { if ($k -gt 10) {break} $k = pow $a[$i] $k } if ($i - 1 -ge -$a.count) {$k *= lg $a[$i - 1]} if ($i - 2 -ge -$a.count) {$k += lg (lg $a[$i - 2])} while ($k -gt 10) { $k = lg $k $i++ } if ($i += $a.count) {$i++} $b = @(10) * $i + [Math]::round($k, 3) ($a -join "^") + " = " + ($b -join "^") } tetrconv (@(3) * 6) tetrconv (@(2.718) * 4 + 7.705) tetrconv (5.0e50, 6.0e60, 7.0e70, 8.0e80, 9.0e90) tetrconv (@(1.1) * 5)
934 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 00:32:05.95 ID:ORedds2P.net] 偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。 1まで出力して完了です。 単純だけど、どこまで短く書ける?
935 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 00:36:48.03 ID:ZBjdhNSI.net] >>909 コラッツ予想はもうおなかいっぱいだわ
936 名前:デフォルトの名無しさん [2019/11/03(日) 12:57:12.82 ID:ax9Okew1.net] コラッて怒れば良いんじゃないかな
937 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 13:57:01.56 ID:mZU6qafh.net] >>909 https://ideone.com/JsckiH C++。ショートコーダじゃないから短めに書いて、24行。
938 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 15:49:54.73 ID:kVBOYkVG.net] >>909 C# https://ideone.com/unj3KD 短く書こうとする気すらないw
939 名前:デフォルトの名無しさん [2019/11/03(日) 18:50:15.71 ID:6KV8hNPc.net] 縦と横のサイズが与えられるのでアスペクト比を求めよ
940 名前:デフォルトの名無しさん mailto:sage [2019/11/03(日) 20:03:15.96 ID:PuBKYFzC.net] 比は整数のみ?
941 名前:デフォルトの名無しさん [2019/11/03(日) 21:50:08.17 ID:rJL4Vpjg.net] >>899 別の入力値 (例えば@(1.7) * 5や@(1.5) * 14) を試してみたら出力値がおかしかったので修正。 function lg($x) {[Math]::log10($x)} function pow($x, $y) {[Math]::pow($x, $y)} function tetrconv($a) { $k = 1 foreach ($i in ($a.count - 1)..0) { $k = pow $a[$i] $k if ($k -gt 20) {break} } if ($i -ge 1) {$k *= lg $a[$i - 1]} if ($i -ge 2) {$k += lg (lg $a[$i - 2])} while ($k -gt 10) { $k = lg $k $i++ } $b = @(10) * $i + [Math]::round($k, 3) ($a -join "^") + " = " + ($b -join "^") } tetrconv (@(3) * 6) tetrconv (@(2.718) * 4 + 7.705) tetrconv (5.0e+50, 6.0e+60, 7.0e+70, 8.0e+80, 9.0e+90) tetrconv (@(1.1) * 5)
942 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 07:30:04.95 ID:T8mOMaiU.net] お題: m から n までの整数のうち、桁数字の和が s になるものをすべて列挙する 関数を書け。 具体的に: 1 から 100 までの整数のうち、桁数字の和が 12 になるものは、 39、48、57、66、75、84、93 である。 関数の実行例: f(1, 100, 12) → [39, 48, 57, 66, 75, 84, 93]
943 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 10:20:33.30 ID:xKwnPcPn.net] 数列和好きだね これで何回目だ? 数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか
944 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 10:51:39.60 ID:FzGFhotx.net] >>917 perl なんの捻りもない use List::Util qw(sum); print join",",(grep{sum(split//)==12}(1..100));
945 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 12:37:41.26 ID:7wrIz40y.net] >>918 数列和? いきなりオレオレ用語で語られても困るw
946 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 14:30:03.94 ID:obVJwnOe.net] >>917 https://ideone.com/pWqVPQ C++。割といつも通りという感じ。
947 名前:デフォルトの名無しさん mailto:sage [2019/11/04(月) 19:33:38.63 ID:xKwnPcPn.net] タイポ 数字和 >744 などにでてくるやつ
948 名前:デフォルトの名無しさん [2019/11/04(月) 19:35:11.53 ID:6jo2x8my.net] >>917 PowerShellで単純に書けば function f($a, $b, $s) {$a..$b |? {(iex ([char[]]"$_" -join "+")) -eq $s}} f 1 100 12 だが、桁が増えると遅すぎるので、少し工夫すると、 $M = [Math] function g($s, $n) { if ($n -eq 1) {return $s} $d = $M::pow(10, $n - 1) for ($i = $M::max(0, $s - 9 * ($n - 1)); $i -le $M::min(9, $s); $i++) { g ($s - $i) ($n - 1) |% {$d * $i + $_} } } function f($a, $b, $s) { g $s ($M::ceiling($M::log10($b))) |? {$_ -ge $a -and $_ -le $b} } f 1 10000000 12
949 名前:デフォルトの名無しさん [2019/11/04(月) 19:36:29.94 ID:6jo2x8my.net] 7桁まではまあまあだが8桁以上だと遅いので、Cで書き換えると9桁でも瞬時に終わった。 (出力をファイルにリダイレクトした場合)。Visual Studioでは動作するが、 ideone.comでは変なコンパイラエラーが発生する。 #include <stdio.h> #include <stdlib.h> #include <math.h> void g(int a, int b, int s, int n, int t, int x) { int d, i; if (n == 0) { if (t == s && x >= a && x <= b) printf("%d\n", x); } else { for (d = i = 1; i < n; i++) d *= 10; for (i = max(0, (s - t) - 9 * (n - 1)); i <= min(9, s - t); i++) { g(a, b, s, n - 1, t + i, d * i + x); } } } void f(int a, int b, int s) { g(a, b, s, ceil(log10(b)), 0, 0); } int main(void) { f(1, 1000000000, 12); return 0; }
950 名前:デフォルトの名無しさん [2019/11/05(火) 01:53:14.53 ID:gnRgB6kn.net] >>909 Kotlin https://paiza.io/projects/P-_x81NFh0Pq-Fu6FgHHQg 肝心な部分は短いよな・・・
951 名前:デフォルトの名無しさん [2019/11/05(火) 20:14:32.31 ID:e+hxAdfR.net] お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。
952 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 20:40:24.45 ID:3L71zPwH.net] >>926 全探索になるから辛い。 X以上になったら打ち切りとかできないし、枝がX個以上なら切るとかもできない。
953 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 21:02:19.16 ID:3L71zPwH.net] 枝じゃなかった。支点だった。
954 名前:デフォルトの名無しさん mailto:sage [2019/11/05(火) 22:48:36.11 ID:4YhU7TUN.net] >>917 Common Lisp (defun f (m n s) (print (loop for i from m to n if (= s (loop for (j k) = (multiple-value-list (floor i 10)) then (multiple-value-list (floor j 10)) sum k until (zerop j))) collect i))) (f 1 100 12)
955 名前:デフォルトの名無しさん [2019/11/07(木) 19:42:24.48 ID:wJeAdMrJ.net] >>917 Kotlin https://paiza.io/projects/sCUo-pxCCvYRSj_y9LA9Qg ひねりなし。
956 名前:デフォルトの名無しさん [2019/11/07(木) 22:47:28.91 ID:Iq2Mem9/.net] >>924 を読み返してみたら、1変数減らしてすっきりさせられることに気付いた。 #include <stdio.h> #include <stdlib.h> #include <math.h> void g(int a, int b, int r, int n, int x) { int d, i; if (n == 0) { if (r == 0 && x >= a && x <= b) printf("%d\n", x); } else { d = pow(10, n - 1); for (i = max(0, r - 9 * (n - 1)); i <= min(9, r); i++) { g(a, b, r - i, n - 1, d * i + x); } } } void f(int a, int b, int s) { g(a, b, s, ceil(log10(b)), 0); } int main(void) { f(1, 1000000000, 12); return 0; }
957 名前:デフォルトの名無しさん [2019/11/10(日) 21:37:46.78 ID:OK7x/7YO.net] 文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、 コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、 824F..8258 FF10..FF19 01234566789 となる。なお、シフトJISには機種依存文字を含んで構わない。
958 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 21:57:20.43 ID:uvNl/
] [ここ壊れてます]
959 名前:eaa.net mailto: >>932 何を以って同じ文字とみなすのか定義しろ [] [ここ壊れてます]
960 名前:デフォルトの名無しさん [2019/11/10(日) 22:09:53.56 ID:OK7x/7YO.net] >>933 それも機種依存で構わない。規格上の厳密さにこだわる必要はない。
961 名前:デフォルトの名無しさん mailto:sage [2019/11/10(日) 23:26:27.72 ID:EkgZPBq1.net] >>932 Java https://ideone.com/GLDM9a これでいいのけ?
962 名前:デフォルトの名無しさん mailto:sage [2019/11/11(月) 00:44:57.23 ID:VmjibYtT.net] バイナリファイルの高速コンペア